#version 330 core #define AIR_IOR 1.0 #define GLASS_IOR 1.52 in VS_OUT { vec3 vert_normal; vec3 frag_position; vec2 uv_coords; } fs_in; uniform vec3 camera_position; uniform samplerCube cubemap; out vec4 color; void main() { vec3 view_direction = normalize(fs_in.frag_position - camera_position); vec3 refract_direction = refract(view_direction, normalize(fs_in.vert_normal), AIR_IOR / GLASS_IOR); color = vec4(texture(cubemap, refract_direction).rgb, 1.0); }