uniform mat4 uMatrixMvp; uniform mat3 uMatrixNormal; uniform mat4 uMatrixModelview; uniform vec4 uLightPosition; varying vec3 vLightVector; varying vec3 vLightHalfVector; varying vec3 vNormal; VERTEX_SHADER_USE_SHADOWS VERTEX_SHADER_USE_POSITION VERTEX_SHADER_USE_NORMALS VERTEX_SHADER_USE_TEXCOORD VERTEX_SHADER_NEED_TEX_COORD VERTEX_SHADER_USE_LIGHT_ATTENUATION void vertexPhong(vec4 position, vec3 normal) { normal = uMatrixNormal * normal; position = uMatrixModelview * position; #ifdef NORMALIZE_NORMALS normal = normalize(normal); #endif //NORMALIZE_NORMALS #ifdef LIGHT_DIRECTIONAL vLightVector = uLightPosition.xyz; #else vLightVector = uLightPosition.xyz - position.xyz; #ifdef LIGHT_ATTENUATION vLightDist = length(vLightVector); #endif //LIGHT_ATTENUATION vLightVector = normalize(vLightVector); #endif //LIGHT_DIRECTIONAL vLightHalfVector = normalize(normalize(-position.xyz) + vLightVector); vNormal = normal; } void main() { VERTEX_SHADER_POSITION VERTEX_SHADER_NORMAL VERTEX_SHADER_TEXCOORD gl_Position = uMatrixMvp * position; vertexPhong(position, normal); VERTEX_SHADER_SHADOWED }