gpt4 book ai didi

opengl - 片段着色器眼空间未缩放深度坐标

转载 作者:行者123 更新时间:2023-12-01 00:02:39 24 4
gpt4 key购买 nike

我正在尝试在 GLSL 片段着色器中使用到场景中对象的未缩放(距前剪裁平面的真实距离)距离。 gl_FragCoord.z 值比我预期的要小。在我的顶点着色器中,我只使用 ftransform() 来设置 gl_Position。当我期望它们在 15 到 20 之间时,我看到的是 2 到 3 之间的值。

我怎样才能获得真正的眼空间深度?
谢谢!

最佳答案

将您想要的任何内容作为顶点着色器的变量传递。

片段着色器中可用的 Z 值已经根据您的 z-near/z-far(来自投影矩阵)和 DepthRange 进行了标准化。所以这不是你所追求的直接。从技术上讲,您可以尝试通过恢复顶点着色器之后发生的 Z 上的各种 OpenGL 操作来重建它,但这可能比仅仅传递您想要的更麻烦(从恢复投影矩阵是非线性的事实开始) , 确切地。

作为旁注,您将使用 gl_ModelViewMatrix * gl_Vertex 计算的 Z是从角度来看的 Z,而不是近 Z 平面。

关于opengl - 片段着色器眼空间未缩放深度坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2711050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com