Ben*_*nes 4 opengl glsl fragment-shader
我正在尝试使用GLSL片段着色器中场景中对象的未缩放距离(与前裁剪平面的真实距离)。gl_FragCoord.z值比我预期的要小。在我的顶点着色器中,我仅使用ftransform()设置gl_Position。我期望2到3之间的值在15到20之间。
如何获得真实的眼空间深度?谢谢!
将您想要的任何内容作为顶点着色器传递下来。
片段着色器中可用的Z值已经根据您的z-near / z-far(来自投影矩阵)和DepthRange进行了归一化。因此,这并不直接是您追求的目标。从技术上讲,您可以尝试通过还原在顶点着色器之后发生的Z上的各种OpenGL操作来重建它,但这可能比直接传递所需的内容更麻烦(从还原投影矩阵为非线性的事实开始) ,完全是。
附带说明一下,gl_ModelViewMatrix * gl_Vertex从角度来看,您要使用的Z是Z,而不是近Z平面。