machine.html
changeset 31 744b427d1379
parent 30 95688249c40c
child 33 2af408534f28
     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>