uniform sampler2D Texture; uniform sampler2D NormalMap; uniform float FogBeginDistance; uniform float FogEndDistance; varying vec2 texCoord; varying vec3 vertexPos; varying vec3 absoluteVertexPos; varying vec3 normal; varying vec3 tangent; varying vec3 bitangent; void main() { vec3 norm1 = normalize(normal); vec3 norm2 = texture2D(NormalMap, texCoord).rgb * 2.0 - 1.0; mat3 TBN = mat3(tangent, bitangent, norm1); vec3 transformedNormal = normalize(TBN * norm2); //gl_FragColor = vec4(transformedNormal*0.5+ vec3(0.5, 0.5, 0.5), 1.0); vec3 lightPos = vec3(-2, 5, 0); vec3 lightVec = absoluteVertexPos - lightPos; float coef = max(dot(-normalize(lightVec),transformedNormal),0.2); float coef2 = clamp((15.0 - length(lightVec))/10.0, 0.2, 1.0); vec4 texColor = texture2D(Texture,texCoord).rgba; gl_FragColor = vec4(texColor.rgb*coef2*coef, 1.0); /* //Night //vec4 fogColor = vec4(0.25, 0.55, 1.0, 1.0); vec4 fogColor = vec4(0.05, 0.05, 0.1, 1.0); float fogDistCoef = (vertexPos.z - FogBeginDistance) / (FogEndDistance - FogBeginDistance); fogDistCoef = clamp(fogDistCoef, 0.0, 1.0); vec4 resultColor = mix(texColor*coef2, fogColor, fogDistCoef); gl_FragColor = vec4(resultColor.rgb, 1.0);*/ }