forked from enlightenment/efl
52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
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
|
|
}
|