varying vec3 vpos, vdir, normal; #ifdef USE_SHADOWMAP varying vec4 shadow_tc; #endif #ifdef USE_CUBEMAP varying vec3 wdir; uniform mat4 envmap_matrix; #endif void main() { gl_Position = ftransform(); vpos = (gl_ModelViewMatrix * gl_Vertex).xyz; normal = gl_NormalMatrix * gl_Normal; vdir = -vpos; #ifdef USE_CUBEMAP wdir = (envmap_matrix * vec4(vdir, 1.0)).xyz; // bring back to world space #endif #ifdef USE_TEXMAP gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; #endif #ifdef USE_SHADOWMAP mat4 offmat = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0); mat4 tex_matrix = offmat * gl_TextureMatrix[1]; shadow_tc = tex_matrix * vec4(vpos, 1.0); #endif }