diff options
Diffstat (limited to 'progs/glsl/reflect.vert')
-rw-r--r-- | progs/glsl/reflect.vert | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/progs/glsl/reflect.vert b/progs/glsl/reflect.vert new file mode 100644 index 000000000..402be38bf --- /dev/null +++ b/progs/glsl/reflect.vert @@ -0,0 +1,19 @@ +// 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; + + // outputs + normal = n; + gl_TexCoord[0] = gl_TextureMatrix[0] * f; + gl_Position = ftransform(); +} |