0

Im doing shadowmapping for directional lights, and the standard depth bias matrix doesnt give the same results on diffirent hardware.

After some debugging, I'm pretty sure that some gpu-s write to the depth buffer normalized values [0, 1] and some orthographic projection values [-1, 1].

How do i force all gpus to write values in the same interval? Is there an OpenGL command?

4

1 回答 1

0

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

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

GL 规范中明确定义了z-value 的转换方式。它们将从[-1,1] 中的标准化设备坐标(您称为“正交投影值”)转换为窗口空间,使用通过设置的范围glDepthRange(如果您不更改,则为 [0,1]它)。如果您有一个整数深度缓冲区(这也是典型情况),则这些值也将使用可用位的全部范围(通常为 24)转换为整数。

于 2014-06-26T19:24:25.353 回答