| uniform sampler2D sTexture; |
| uniform sampler2D sNormalMap; |
| uniform bool bUseDot3; |
| |
| varying mediump vec2 TexCoord; |
| varying mediump vec3 Light; |
| |
| void main() |
| { |
| if(bUseDot3) |
| { |
| /* |
| Note: |
| In the normal map red = y, green = x, blue = z which is why when we get the normal |
| from the texture we use the swizzle .grb so the colours are mapped to the correct |
| co-ordinate variable. |
| */ |
| |
| mediump vec3 fNormal = texture2D(sNormalMap, TexCoord).grb; |
| mediump float fNDotL = dot((fNormal - 0.5) * 2.0, Light); |
| |
| gl_FragColor = texture2D(sTexture, TexCoord) * fNDotL; |
| } |
| else |
| gl_FragColor = texture2D(sTexture, TexCoord) * Light.x; |
| } |