varying vec4 shadowmapposition; #ifdef ALPHA_TEST_ENABLED FRAGMENT_SHADER_USE_TEX_COORD FRAGMENT_SHADER_USE_ALPHA_TEST_GLES #ifdef DIFFUSE #ifdef DIFFUSE_TEXTURE uniform sampler2D uTextureDiffuse0; uniform mat3 uTextureMatrixTransformDiffuse0; #endif //DIFFUSE_TEXTURE #ifdef DIFFUSE_TEXTURE_BLEND uniform sampler2D uTextureDiffuse1; uniform float uTextureDiffuseWeight; uniform mat3 uTextureMatrixTransformDiffuse1; #endif //DIFFUSE_TEXTURE_BLEND #endif //DIFFUSE #endif //ALPHA_TEST_ENABLED void main() { vec4 color; #ifndef NEED_TEX_COORD gl_FragColor = vec4(1); #endif #ifdef ALPHA_TEST_ENABLED #ifdef DIFFUSE_TEXTURE_BLEND vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1; color = (texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uTextureDiffuseWeight + texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)) * (1.0 - uTextureDiffuseWeight)); #else #ifdef DIFFUSE_TEXTURE vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0; color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)); #else color = vec4(1); #endif //DIFFUSE_TEXTURE #endif //DIFFUSE_TEXTURE_BLEND FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color) #endif //ALPHA_TEST_ENABLED const vec4 pack = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0); const vec4 mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0); vec4 depthcolor; float normdist = shadowmapposition.z / shadowmapposition.w; normdist = ((normdist + 1.0) / 2.0); depthcolor = vec4(fract(pack * normdist)); depthcolor -= depthcolor.xxyz * mask; gl_FragColor = depthcolor; }