- uniform sampler2D CameraDepthMap;
- uniform vec4 DepthClipping;
- uniform mat4 CamProjectionMatrix;
- uniform mat4 CamModelViewMatrix;
- float LinearizeDepth(float z,float n,float f)
- {
- return (f + n - z * (f - n));
- }
- void main()
- {
- /*
- vec4 uv = texture2D( UVBuffer, gl_TexCoord[0].st);
- vec2 unpacked = vec2(uv.x,uv.z);
- unpacked.x += floor(uv.g * (16.0)) / 16.0 / 256.0;
- unpacked.y += (uv.g - (floor(uv.g * (16.0)) / 16.0)) / 256.0;*/
- float cdm = LinearizeDepth(texture2D( CameraDepthMap, gl_TexCoord[0].st).x,DepthClipping.x,DepthClipping.y);
- vec4 screenPos = vec4(gl_TexCoord[0].x, gl_TexCoord[0].y, 1.0, 1.0) * 2.0 - 1.0;
- screenPos.z = cdm;
- vec4 viewPosition = screenPos*(CamProjectionMatrix*CamModelViewMatrix);
- viewPosition /= viewPosition.w;
- vec3 vertexPosition = viewPosition.xyz;
- gl_FragData[0] =vec4(0.0,0.0,0.0,1.0);
- gl_FragData[0].rgb = vertexPosition;
- }