1.1 --- a/machine.html Mon Apr 25 23:30:26 2011 +0200
1.2 +++ b/machine.html Tue Apr 26 01:48:56 2011 +0200
1.3 @@ -9,26 +9,47 @@
1.4 #endif
1.5
1.6 varying vec4 vColour;
1.7 + varying vec3 vLightWeighting;
1.8
1.9 void main(void)
1.10 {
1.11 - gl_FragColor = vColour;
1.12 + gl_FragColor = vec4(vColour.rgb * vLightWeighting, vColour.a);
1.13 }
1.14 </script>
1.15
1.16 <script id="vertex-shader" type="x-shader/x-vertex">
1.17 attribute vec3 aVertexPosition;
1.18 attribute vec4 aVertexColour;
1.19 + attribute vec3 aVertexNormal;
1.20
1.21 uniform mat4 uMVMatrix;
1.22 uniform mat4 uPMatrix;
1.23 + uniform mat3 uNMatrix;
1.24 +
1.25 + uniform vec3 uAmbientColour;
1.26 +
1.27 + uniform vec3 uLightingDirection;
1.28 + uniform vec3 uDirectionalColour;
1.29 +
1.30 + uniform bool uUseLighting;
1.31
1.32 varying vec4 vColour;
1.33 + varying vec3 vLightWeighting;
1.34
1.35 void main(void)
1.36 {
1.37 gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
1.38 vColour = aVertexColour;
1.39 + if (!uUseLighting)
1.40 + {
1.41 + vLightWeighting = vec3(1.0, 1.0, 1.0);
1.42 + }
1.43 + else
1.44 + {
1.45 + vec3 transformedNormal = uNMatrix * aVertexNormal;
1.46 + float directionalLightWeighting = max(dot(transformedNormal, uLightingDirection), 0.0);
1.47 + vLightWeighting = uAmbientColour + uDirectionalColour * directionalLightWeighting;
1.48 + }
1.49 }
1.50 </script>
1.51 </head>