草庐IT

c++ - 为什么我们应该在 OpenGL 管道的片段阶段进入眼空间坐标?

我目前正在编写一个小型3D引擎,我想知道为什么我应该在片段着色器中进入眼空间坐标。为此,我必须将我的相机矩阵放在一个制服中以转换眼睛坐标中的光线位置,以及一个camera_normal矩阵以将光线方向放在眼睛坐标中。为什么每个人都使用这些坐标?我真的没有看到任何优势。 最佳答案 使用eye-space有几个原因:很方便。这是一个存在的定义明确的空间,并且您无论如何都要在转换位置的过程中进行计算。它具有与世界空间相同的比例,但没有世界空间存在的问题。眼睛空间总是(相对)接近于零(因为眼睛在0处),因此它是具有显式变换矩阵的合理空间。比