precision highp float; // Constants uniform vec3 vEyePosition; uniform vec4 vDiffuseColor; // Input varying vec3 vPositionW; #ifdef NORMAL varying vec3 vNormalW; #endif #ifdef VERTEXCOLOR varying vec4 vColor; #endif // Lights #include[0] #include[1] #include[2] #include[3] #include #include // Samplers #ifdef DIFFUSE varying vec2 vDiffuseUV; uniform sampler2D diffuseSampler; uniform vec2 vDiffuseInfos; #endif #include // Fog #include void main(void) { #include vec3 viewDirectionW = normalize(vEyePosition - vPositionW); // Base color vec4 baseColor = vec4(1., 1., 1., 1.); vec3 diffuseColor = vDiffuseColor.rgb; // Alpha float alpha = vDiffuseColor.a; #ifdef DIFFUSE baseColor = texture2D(diffuseSampler, vDiffuseUV); #ifdef ALPHATEST if (baseColor.a < 0.4) discard; #endif baseColor.rgb *= vDiffuseInfos.y; #endif #ifdef VERTEXCOLOR baseColor.rgb *= vColor.rgb; #endif // Normal #ifdef NORMAL vec3 normalW = normalize(vNormalW); #else vec3 normalW = vec3(1.0, 1.0, 1.0); #endif // Lighting vec3 diffuseBase = vec3(0., 0., 0.); lightingInfo info; float shadow = 1.; float glossiness = 0.; #include[0] #include[1] #include[2] #include[3] #ifdef VERTEXALPHA alpha *= vColor.a; #endif vec3 finalDiffuse = clamp(diffuseBase * diffuseColor, 0.0, 1.0) * baseColor.rgb; // Composition vec4 color = vec4(finalDiffuse, alpha); #include gl_FragColor = color; }