Code help: what is the meaning of `czm_reverseLogDepth`?

I get it from Builtin/Functions/reverseLogDepth.glsl

float czm_reverseLogDepth(float logZ)
{
#ifdef LOG_DEPTH
    float near = czm_currentFrustum.x;
    float far = czm_currentFrustum.y;
    float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne;
    float depthFromNear = pow(2.0, log2Depth) - 1.0;
    return far * (1.0 - near / (depthFromNear + near)) / (far - near);
#endif
    return logZ;
}

What’s the param logZ? Is the log depth value that can get from czm_unpackDepth function?
What does this function return, the expression far * (1.0 - near / (depthFromNear + near)) / (far - near), if define LOG_DEPTH?
Without comments the builtin glsl function really confused me, or how should I learn what I am missing?

Thanks.

@onsummer

What is your use case for this function? From my research, this function is reversing the logarithmic depth buffer. You can find more information on the logarithmic depth buffer here:

This resource also includes explanations for the equations used in this function. Let me know if you have any other questions or concerns.

-Sam

1 Like

Thank you, I just want to know the capabilities of this function, cuz source code without comment so confused me…

@onsummer

I completely understand! Let me know if anything else comes up.

-Sam