我开始向我的游戏引擎添加延迟着色,我在理解如何从深度纹理中检索眼睛空间坐标时遇到了一些麻烦。
根据我的理解,我在这篇文章中阅读了两种方法:
- 如果我将深度存储在
GL_DEPTH_ATTACHMENT
我的帧缓冲区中,第一种方法将起作用。 - 第二种方法需要我在 Shader 中计算我的深度,并将其存储在
GL_COLOR_ATTACHMENTn
.
第二种方法的重建对于我需要的东西来说似乎太复杂了,所以如果可能的话,我宁愿不使用它。
对于重建眼睛坐标,第一种方法取 a 中的纹理坐标、深度和 a ,w
将其乘以逆透视矩阵,然后将结果除以它的。1.0
vec4
w
这种方法是否会在我的GL_DEPTH_ATTACHMENT
纹理中存储的深度不变的情况下工作,并且它是否足够准确以进行照明?
如果它不能原封不动地工作,那么我需要用我的深度做什么才能让它发挥作用?