You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
692 B
GLSL
29 lines
692 B
GLSL
uniform mat4 worldViewProjectionMatrix;
|
|
uniform mat4 worldMatrix;
|
|
|
|
uniform vec3 lightDirection;
|
|
uniform vec3 cameraPosition;
|
|
|
|
attribute vec3 inPosition;
|
|
attribute vec3 inNormal;
|
|
|
|
varying vec3 outWorldNormal;
|
|
varying vec3 outHalfAngle;
|
|
varying vec3 outLightVec;
|
|
|
|
|
|
void main()
|
|
{
|
|
vec4 position = vec4(inPosition, 1.0);
|
|
vec4 worldPosition = vec4(inPosition, 1.0) * worldMatrix;
|
|
outWorldNormal = normalize( (vec4(inNormal, 0.0) * worldMatrix).xyz );
|
|
|
|
// half-angle vector
|
|
vec3 eyeVec = normalize( cameraPosition - worldPosition.xyz );
|
|
outLightVec = normalize( -lightDirection );
|
|
outHalfAngle = normalize( eyeVec + outLightVec );
|
|
|
|
gl_Position = position * worldViewProjectionMatrix;
|
|
}
|
|
|