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;
}