//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;
}