Files
Nuake/Data/Shaders/display_depth.shader
2025-01-31 18:04:43 -05:00

38 lines
797 B
GLSL

#shader vertex
#version 440 core
layout(location = 0) in vec3 VertexPosition;
layout(location = 1) in vec2 UVPosition;
out flat vec2 UV;
void main()
{
UV = UVPosition;
gl_Position = vec4(VertexPosition, 1.0f);
}
#shader fragment
#version 440 core
uniform sampler2D u_Source;
float u_NearPlane = 0.01f;
float u_FarPlane = 25.5f;
in vec2 UV;
out vec4 FragColor;
float LinearizeDepth(float depth)
{
float z = depth * 2.0 - 1.0; // Back to NDC
return (2.0 * u_NearPlane * u_FarPlane) / (u_FarPlane + u_NearPlane - z * (u_FarPlane - u_NearPlane));
}
void main()
{
float depthValue = texture(u_Source, UV).r;
float linearDepth = LinearizeDepth(depthValue) / u_FarPlane; // Normalize to [0, 1] range
vec3 color = vec3(linearDepth);
FragColor = vec4(color, 1.0);
}