为简单起见,我们以OpenGL渲染系统为例。根据我所学到的,
OpenGL中的摄像机与世界空间的原点对齐,即(0,0,0)。我还读到我们不移动相机,因此它将保持在世界坐标中的原始位置(0,0,0)。相机面向负z方向。
因此问题是,如果你没有移动相机那么它将始终保持在世界空间的原点(0,0,0)。如果是这种情况,那么世界和眼睛坐标之间将没有区别。例如,因为世界坐标中的对象A位置是(2,2,-5)。在眼睛坐标中,它将是相同的(2-0, 2-0, -5-0) = (2,2,-5)
答案 0 :(得分:3)
相机是眼睛。如果您不移动相机,则意味着您的视图矩阵是一个单位矩阵,因此您与之相乘的任何坐标都将保持不变。
让我们举个例子,我们有一个点被渲染(2.0, 2.0, -5.0)
。这是该点的世界空间位置。这意味着无论相机在哪里,该点都在(2.0, 2.0, -5.0)
。
如果您说的是相机在原点,是的,眼睛(相机)空间位置与世界空间位置相同。
举一个简单的例子,假设你想要在正z轴上移动你的相机2个单位。现在你的相机处于(0, 0, 2)
,当你从相机(或眼睛)看时,由于你将相机移回原点,该点将在距原点z轴更远的地方2个单位,所以眼睛空间位置是(2.0, 2.0, -7.0)
。
这是相机上更复杂的转换所发生的事情。您将拥有一个视图矩阵,它将与您的相机变换相反,并且会应用于世界空间中的每个点,以将其转换为眼睛(或相机)空间。