我正在为定向灯做阴影贴图,标准深度偏置矩阵在不同的硬件上没有给出相同的结果。
经过一些调试后,我很确定一些gpu-s写入深度缓冲区的归一化值[0,1]和一些正交投影值[-1,1]。
如何强制所有gpus在同一时间间隔内写入值?有OpenGL命令吗?
答案 0 :(得分:0)
经过一些调试,我很确定有些gpu-s会写入 深度缓冲归一化值[0,1]和一些正交投影 值[-1,1]。
你是怎么推断出来的?这是错的。
如何转换z
- 值是在GL规范中明确定义的。它们将从规范化设备坐标(您所谓的"正投影值")转换为[-1,1]到窗口空间,使用通过glDepthRange
设置的范围(如果你不改变它,则为[0,1])。如果您有一个整数深度缓冲区(这也是典型情况),那么这些值也将使用可用位的整个范围(通常为24)转换为整数。