Update to depth testing article

Instead of directly dividing by far in the LinearizeDepth function,
divide by far in the main() function to make it explicitly clear the
LinearizeDepth value returns the depth value up to far.
This commit is contained in:
Joey de Vries
2015-08-12 10:07:53 +02:00
parent 236cc79dc3
commit 20999a1b68

View File

@@ -1,16 +1,16 @@
#version 330 core
out vec4 color;
float LinearizeDepth(float depth) // Note that this ranges from [0,1] instead of up to 'far plane distance' since we divide by 'far'
float near = 1.0;
float far = 100.0;
float LinearizeDepth(float depth)
{
float near = 0.1;
float far = 100.0;
float z = depth * 2.0 - 1.0; // Back to NDC
return (2.0 * near) / (far + near - z * (far - near));
return (2.0 * near * far) / (far + near - z * (far - near));
}
void main()
{
float depth = LinearizeDepth(gl_FragCoord.z);
float depth = LinearizeDepth(gl_FragCoord.z) / far; // divide by far to get depth in range [0,1] for visualization purposes.
color = vec4(vec3(depth), 1.0f);
}