diff options
author | James Canete <use.less01@gmail.com> | 2012-12-04 01:56:52 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2013-01-12 21:24:53 +0000 |
commit | 8cb69adad0915fc5de6dc87db1ae28aba44d350e (patch) | |
tree | 7db5db21b83edf73c901c4e6eae884037407adde /src/rend2/glsl/shadowfill_fp.glsl | |
parent | 815a7ae53be78f1f7108dbf086b2928d3017bbe4 (diff) |
#5808 - Include and use .glsl in source (rend2)
Diffstat (limited to 'src/rend2/glsl/shadowfill_fp.glsl')
-rw-r--r-- | src/rend2/glsl/shadowfill_fp.glsl | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/rend2/glsl/shadowfill_fp.glsl b/src/rend2/glsl/shadowfill_fp.glsl new file mode 100644 index 00000000..150f3d12 --- /dev/null +++ b/src/rend2/glsl/shadowfill_fp.glsl @@ -0,0 +1,41 @@ +uniform vec4 u_LightOrigin; +uniform float u_LightRadius; + +varying vec3 var_Position; + +void main() +{ +#if defined(USE_DEPTH) + float depth = length(u_LightOrigin.xyz - var_Position) / u_LightRadius; + #if 0 + // 32 bit precision + const vec4 bitSh = vec4( 256 * 256 * 256, 256 * 256, 256, 1); + const vec4 bitMsk = vec4( 0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0); + + vec4 comp; + comp = depth * bitSh; + comp.xyz = fract(comp.xyz); + comp -= comp.xxyz * bitMsk; + gl_FragColor = comp; + #endif + + #if 1 + // 24 bit precision + const vec3 bitSh = vec3( 256 * 256, 256, 1); + const vec3 bitMsk = vec3( 0, 1.0 / 256.0, 1.0 / 256.0); + + vec3 comp; + comp = depth * bitSh; + comp.xy = fract(comp.xy); + comp -= comp.xxy * bitMsk; + gl_FragColor = vec4(comp, 1.0); + #endif + + #if 0 + // 8 bit precision + gl_FragColor = vec4(depth, depth, depth, 1); + #endif +#else + gl_FragColor = vec4(0, 0, 0, 1); +#endif +} |