1.1 --- a/machine.html Wed Apr 27 14:14:07 2011 +0200
1.2 +++ b/machine.html Wed Apr 27 14:41:04 2011 +0200
1.3 @@ -12,11 +12,29 @@
1.4 #endif
1.5
1.6 varying vec4 vColour;
1.7 - varying vec3 vLightWeighting;
1.8 + varying vec3 vTransformedNormal;
1.9 + varying vec4 vPosition;
1.10 +
1.11 + uniform bool uUseLighting;
1.12 +
1.13 + uniform vec3 uAmbientColour;
1.14 + uniform vec3 uPointLightingLocation;
1.15 + uniform vec3 uPointLightingColour;
1.16
1.17 - void main(void)
1.18 + void main(void)
1.19 {
1.20 - gl_FragColor = vec4(vColour.rgb * vLightWeighting, vColour.a);
1.21 + vec3 lightWeighting;
1.22 + if (!uUseLighting)
1.23 + {
1.24 + lightWeighting = vec3(1.0, 1.0, 1.0);
1.25 + }
1.26 + else
1.27 + {
1.28 + vec3 lightDirection = normalize(uPointLightingLocation - vPosition.xyz);
1.29 + float directionalLightWeighting = max(dot(normalize(vTransformedNormal), lightDirection), 0.0);
1.30 + lightWeighting = uAmbientColour + uPointLightingColour * directionalLightWeighting;
1.31 + }
1.32 + gl_FragColor = vec4(vColour.rgb * lightWeighting, vColour.a);
1.33 }
1.34 </script>
1.35
1.36 @@ -29,38 +47,16 @@
1.37 uniform mat4 uPMatrix;
1.38 uniform mat3 uNMatrix;
1.39
1.40 - uniform vec3 uAmbientColour;
1.41 - uniform vec3 uLightingDirection;
1.42 - uniform vec3 uDirectionalColour;
1.43 - uniform vec3 uPointLightingLocation;
1.44 - uniform vec3 uPointLightingColour;
1.45 -
1.46 - uniform bool uUseLighting;
1.47 -
1.48 varying vec4 vColour;
1.49 - varying vec3 vLightWeighting;
1.50 + varying vec3 vTransformedNormal;
1.51 + varying vec4 vPosition;
1.52
1.53 void main(void)
1.54 {
1.55 - vec4 mvPosition = uMVMatrix * vec4(aVertexPosition, 1.0);
1.56 - gl_Position = uPMatrix * mvPosition;
1.57 + vPosition = uMVMatrix * vec4(aVertexPosition, 1.0);
1.58 + gl_Position = uPMatrix * vPosition;
1.59 vColour = aVertexColour;
1.60 -
1.61 - if (!uUseLighting)
1.62 - {
1.63 - vLightWeighting = vec3(1.0, 1.0, 1.0);
1.64 - }
1.65 - else
1.66 - {
1.67 - //vec3 transformedNormal = uNMatrix * aVertexNormal;
1.68 - //float directionalLightWeighting = max(dot(transformedNormal, uLightingDirection), 0.0);
1.69 - //vLightWeighting = uAmbientColour + uDirectionalColour * directionalLightWeighting;
1.70 -
1.71 - vec3 lightDirection = normalize(uPointLightingLocation - mvPosition.xyz);
1.72 - vec3 transformedNormal = uNMatrix * aVertexNormal;
1.73 - float directionalLightWeighting = max(dot(transformedNormal, lightDirection), 0.0);
1.74 - vLightWeighting = uAmbientColour + uPointLightingColour * directionalLightWeighting;
1.75 - }
1.76 + vTransformedNormal = uNMatrix * aVertexNormal;
1.77 }
1.78 </script>
1.79 </head>