标准化深度缓冲区在opengl中写入

时间:2014-06-26 11:28:17

标签: opengl shadow-mapping

我正在为定向灯做阴影贴图,标准深度偏置矩阵在不同的硬件上没有给出相同的结果。

经过一些调试后,我很确定一些gpu-s写入深度缓冲区的归一化值[0,1]和一些正交投影值[-1,1]。

如何强制所有gpus在同一时间间隔内写入值?有OpenGL命令吗?

1 个答案:

答案 0 :(得分:0)

  

经过一些调试,我很确定有些gpu-s会写入   深度缓冲归一化值[0,1]和一些正交投影   值[-1,1]。

你是怎么推断出来的?这是错的。

如何转换z - 值是在GL规范中明确定义的。它们将从规范化设备坐标(您所谓的"正投影值")转换为[-1,1]到窗口空间,使用通过glDepthRange设置的范围(如果你不改变它,则为[0,1])。如果您有一个整数深度缓冲区(这也是典型情况),那么这些值也将使用可用位的整个范围(通常为24)转换为整数。