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