世界矩阵 vs 视图矩阵
世界矩阵 vs 视图矩阵
在3D图形中,一切都与坐标空间有关。物体有自己的局部空间,其顶点相对于中心定义。世界矩阵将这些局部坐标变换到世界空间,即场景中所有物体共存的共享坐标系。然后视图矩阵将世界空间变换到相机空间,其中相机位于原点并沿特定轴观察。
世界矩阵包含物体的位置、旋转和缩放。当你在3D软件中移动物体时,你正在改变它的世界矩阵。当渲染器绘制物体时,它将每个顶点乘以世界矩阵,以找出该顶点在世界中的位置。这就是为什么你可以有一个顶点为正负一的立方体,它可以出现在场景中的任何位置。
视图矩阵是相机世界矩阵的逆矩阵。它变换所有内容,使相机位于原点并沿Z轴观察。这使渲染计算变得简单得多,因为渲染器始终在相机空间中工作。然后投影矩阵接管,将相机空间变换到屏幕上的最终2D图像,应用透视或正交投影。
在VFX跟踪中,你经常使用这些矩阵。跟踪软件为每一帧提供相机的世界矩阵,告诉你相机在场景中的位置。当导出到3D软件包时,这成为相机的动画。理解世界空间和视图空间之间的区别有助于你调试物体出现在错误位置或方向的问题。
法线矩阵是一个相关概念。当你使用非均匀缩放变换物体时,表面的法线会扭曲。法线矩阵是世界矩阵的逆转置,它纠正这种扭曲,使光照计算正确。大多数渲染器会自动处理这个问题,但当你遇到缩放物体上的奇怪光照伪影时,了解这一点是有好处的。
