//Normal texture and lighting shader //vert attribute vec4 position; attribute vec3 normal; varying vec3 vertexNormal; uniform mat4 modelViewProjectionMatrix; uniform mat3 normalMatrix; uniform vec3 lightPosition; uniform vec4 lightDiffuseColour; uniform vec4 lightSpecularColour; uniform vec4 lightlightAmbientColour; uniform vec3 lightHalfVector; attribute vec2 TexCoordIn; varying vec2 TexCoordOut; uniform vec4 numberColour; uniform vec4 faceColour; void main() { vec3 eyeNormal = normalize(normalMatrix * normal); float nDotVP = max(0.0, dot(eyeNormal, normalize(lightPosition))); vertexNormal = normalize(normalMatrix * normal); TexCoordOut = TexCoordIn; gl_Position = modelViewProjectionMatrix * position; } //################################## //frag varying highp vec3 vertexNormal; uniform highp vec3 lightPosition; uniform highp vec4 lightDiffuseColour; uniform highp vec4 lightSpecularColour; uniform highp vec4 lightAmbientColour; uniform highp vec3 lightHalfVector; varying lowp vec2 TexCoordOut; uniform sampler2D Texture; uniform highp vec4 numberColour; uniform highp vec4 faceColour; void main() { highp float diffuseValue0 = max(dot(vertexNormal, normalize(lightPosition)), 0.0); highp vec4 diffuse_color0 = lightDiffuseColour; highp vec4 specular_material = vec4(1.0,1.0,1.0,1.0); highp vec4 specular_color0 = lightSpecularColour * pow(max(dot(vertexNormal, lightHalfVector), 0.0) , 15.0); lowp vec3 white = vec3(0.8, 0.8, 0.8); if(all(greaterThan(texture2D(Texture, TexCoordOut).rgb , white))){ gl_FragColor = faceColour * (diffuseValue0 * diffuse_color0) + specular_color0 + lightAmbientColour; } else { gl_FragColor = numberColour * (diffuseValue0 * diffuse_color0) + specular_color0 + lightAmbientColour; } } //############################### //Outline vert Shader attribute vec4 position; uniform mat4 modelViewProjectionMatrix; uniform vec4 outlineColour; void main() { vec4 scaled = position*1.15; gl_Position = modelViewProjectionMatrix * scaled; } //############################## //frag uniform highp vec4 outlineColour; void main() { gl_FragColor = outlineColour; }