diff -r 7769f6e1e2c5 -r a828c4cde5b3 machine.html --- a/machine.html Fri Apr 29 17:10:15 2011 +0200 +++ b/machine.html Sat Apr 30 04:05:47 2011 +0200 @@ -12,12 +12,16 @@ #endif varying vec4 vColour; + varying vec2 vTextureCoord; varying vec3 vTransformedNormal; varying vec4 vPosition; uniform float uMaterialShininess; uniform bool uUseLighting; + uniform bool uUseTexture; + + uniform sampler2D uSampler; uniform vec3 uAmbientColour; uniform vec3 uPointLightingLocation; @@ -41,8 +45,16 @@ float diffuseLightWeighting = max(dot(normal, lightDirection), 0.0); lightWeighting = uAmbientColour + uPointLightingSpecularColour * specularLightWeighting + uPointLightingDiffuseColour * diffuseLightWeighting; - } - gl_FragColor = vec4(vColour.rgb * lightWeighting, vColour.a); + } + if (uUseTexture) + { + vec4 colour = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t)); + gl_FragColor = vec4(colour.rgb * lightWeighting, colour.a); + } + else + { + gl_FragColor = vec4(vColour.rgb * lightWeighting, vColour.a); + } } @@ -50,12 +62,14 @@ attribute vec3 aVertexPosition; attribute vec3 aVertexNormal; attribute vec4 aVertexColour; + attribute vec2 aTextureCoord; uniform mat4 uMVMatrix; uniform mat4 uPMatrix; uniform mat3 uNMatrix; varying vec4 vColour; + varying vec2 vTextureCoord; varying vec3 vTransformedNormal; varying vec4 vPosition; @@ -64,6 +78,7 @@ vPosition = uMVMatrix * vec4(aVertexPosition, 1.0); gl_Position = uPMatrix * vPosition; vColour = aVertexColour; + vTextureCoord = aTextureCoord; vTransformedNormal = uNMatrix * aVertexNormal; }