forked from enlightenment/efl
61 lines
1.6 KiB
Plaintext
61 lines
1.6 KiB
Plaintext
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;
|
|
}
|