1 attribute highp vec3 aPosition;
2 attribute highp vec2 aTexCoord;
3 attribute highp vec3 aNormal;
4 varying mediump vec3 vIllumination;
5 uniform mediump vec3 uSize;
6 uniform mediump mat4 uMvpMatrix;
7 uniform mediump mat4 uModelView;
8 uniform mediump mat3 uNormalMatrix;
9 uniform mediump mat4 uObjectMatrix;
10 uniform mediump vec3 uLightPosition;
14 vec4 vertexPosition = vec4(aPosition*min(uSize.x, uSize.y), 1.0);
15 vertexPosition = uObjectMatrix * vertexPosition;
16 vertexPosition = uMvpMatrix * vertexPosition;
18 //Illumination in Model-View space - Transform attributes and uniforms
19 vec4 vertPos = uModelView * vec4(aPosition.xyz, 1.0);
20 vec3 normal = uNormalMatrix * aNormal;
21 vec4 lightPos = uModelView * vec4(uLightPosition, 1.0);
22 vec3 vecToLight = normalize( lightPos.xyz - vertPos.xyz );
24 float lightDiffuse = max( dot( vecToLight, normal ), 0.0 );
25 vIllumination = vec3(lightDiffuse * 0.5 + 0.5);
27 gl_Position = vertexPosition;