37 lines
731 B
GLSL
37 lines
731 B
GLSL
#version 330 core
|
|
|
|
uniform float linearCoef;
|
|
uniform float quadCoef;
|
|
|
|
uniform float near;
|
|
uniform float far;
|
|
|
|
float LinearizeDepth(float depth);
|
|
|
|
void main(){
|
|
// float coord = gl_FragCoord.x;
|
|
// if(coord != 1){
|
|
// gl_FragDepth = 0;
|
|
// } else {
|
|
// gl_FragDepth = 1;
|
|
// }
|
|
|
|
float depthRaw = gl_FragCoord.z;
|
|
|
|
// if(depthRaw != 1){
|
|
// depthRaw = 0;
|
|
// }
|
|
|
|
float finalValue = LinearizeDepth(depthRaw) / sqrt(far);//min(depthRaw * linearCoef + depthRaw * depthRaw * quadCoef,1);
|
|
|
|
gl_FragDepth = finalValue;
|
|
}
|
|
|
|
|
|
//
|
|
//Util
|
|
//
|
|
float LinearizeDepth(float depth){
|
|
float z = depth * 2.0 - 1.0; // back to NDC
|
|
return (2.0 * near * far) / (far + near - z * (far - near));
|
|
} |