#version 450 layout (location = 0) in vec2 TexCoord; layout (location = 0) out vec4 FragColor; layout(binding = 0, set = 1) uniform sampler2D Sampler; layout (binding = 0, set = 3) uniform UniformBlock { float zNear; float zFar; }; // Calculation taken from http://www.geeks3d.com/20091216/geexlab-how-to-visualize-the-depth-buffer-in-glsl/ float linearizeDepth(float originalDepth) { return (2.0 * zNear) / (zFar + zNear - originalDepth * (zFar - zNear)); } void main() { float d = texture(Sampler, TexCoord).r; d = linearizeDepth(d); FragColor = vec4(d, d, d, 1.0); }