Brian | edf24e6 | 2007-02-03 11:36:16 -0700 | [diff] [blame] | 1 | // Vertex shader for cube-texture reflection mapping |
| 2 | // Brian Paul |
| 3 | |
| 4 | |
| 5 | varying vec3 normal; |
| 6 | |
| 7 | void main() |
| 8 | { |
| 9 | vec3 n = gl_NormalMatrix * gl_Normal; |
| 10 | vec3 u = normalize(vec3(gl_ModelViewMatrix * gl_Vertex)); |
| 11 | float two_n_dot_u = 2.0 * dot(n, u); |
| 12 | vec4 f; |
| 13 | f.xyz = u - n * two_n_dot_u; |
Brian Paul | 6ff1a53 | 2009-07-09 13:59:03 -0600 | [diff] [blame^] | 14 | f.w = 1.0; |
Brian | edf24e6 | 2007-02-03 11:36:16 -0700 | [diff] [blame] | 15 | |
| 16 | // outputs |
| 17 | normal = n; |
| 18 | gl_TexCoord[0] = gl_TextureMatrix[0] * f; |
| 19 | gl_Position = ftransform(); |
| 20 | } |