20 lines
399 B
Plaintext
20 lines
399 B
Plaintext
// 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();
|
|
}
|