// Vertex shader for cube-texture reflection mapping // Brian Paul varying vec3 normal; void main() { vec3 n = gl_NormalMatrix * gl_Normal; vec3 u = normalize(vec3(gl_ModelViewMatrix * gl_Vertex)); float two_n_dot_u = 2.0 * dot(n, u); vec4 f; f.xyz = u - n * two_n_dot_u; f.w = 1.0; // outputs normal = n; gl_TexCoord[0] = gl_TextureMatrix[0] * f; gl_Position = ftransform(); }