gpt4 book ai didi

opengl着色器管道深度计算

转载 作者:行者123 更新时间:2023-12-04 06:08:37 25 4
gpt4 key购买 nike

我试图弄清楚在顶点片段着色器对内部发生了什么。更具体地说,我正在尝试比较 cpu 上的深度值。这些深度值中的一个由着色器计算并对应于 gl_FragCoord.z 值。
我所知道的是深度输出在 [0,1] 范围内并且不是线性的。那么有谁知道在将深度输入到顶点着色器和在片段着色器中读取它之间的任何给定深度值会发生什么?
opengl如何将深度转换为[0,1]范围?

提前非常感谢!

最佳答案

应用矩阵变换后,顶点 [v]如果满足以下条件,则在规范 View 体积中:

- v.w <= v.x <= v.w, - v.w <= v.y <= v.w, - v.w <= v.z <= v.w

透视除以 (w) 后:
-1 <= x' <= 1, -1 <= y' <= 1, -1 <= z' <= 1 (where: x' = v.x / v.w, etc.)

然后深度值的标准化范围 [0, 1] 由下式给出:
depth = 0.5 * (z' + 1.0)

关于opengl着色器管道深度计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048282/

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