游戏开发中的“世界空间”和“眼睛空间”是什么?


Answers:


25

在了解什么是世界或眼睛空间之前,什么是空间?

从抽象的意义上讲,几何空间(例如欧几里得空间)是物体倾向于存在的无限范围。该空间定义了生活在该空间中的对象应满足的基本属性。例如,在欧式空间中,距离定义为Sqrt( vector dot product with itself)

大多数人倾向于在空间定义和坐标系之间混合使用。作为欧几里德空间的空间定义了属性,但没有定义坐标系,我想说“眼睛空间”最好称为“眼睛坐标”。

在计算机图形学中,我们几乎专门处理欧几里德空间。当您在欧氏空间中定义(X,Y,Z)的顶点时,对我们而言没有任何意义。

更明确的定义是相对于某些坐标系进行定义。例如,顶点(X,Y,Z)相对于眼睛坐标。因此,如果相对于眼睛坐标的顶点=(0,2,3)。这意味着该顶点是:

  • 从眼睛X位置的X方向为0。
  • 从眼睛Y位置开始沿Y方向显示2。
  • 从眼睛Z位置沿Z方向的3位置。
  • 并且距眼睛的顶点距离为sqrt(0 ^ 2 + 2 ^ 2 + 3 ^ 2)= sqrt(13)单位。

但是什么是眼坐标,我们如何定义坐标系?

我们通过提供三个类似于方向的正交基(读取:单位长度和垂直)向量和一个位置(平移)来定义坐标系。 在此处输入图片说明

因此,如果在openGL中定义了摄影机(请注意,这是相对于世界坐标的):

 - Position (0,3,10)
 - Up       (0,1,0)
 - Forward  (0,0,-1)
 - Right    (1,0,0)

这意味着观看者位于世界(0,0,0)的(0,3,10)处,他的右侧与世界X轴对齐,他的前进与世界Z反向,他的上对齐前往世界Y。

在此处输入图片说明

但是您谈论的眼坐标太多了,什么是世界坐标?

世界坐标只是固定的父坐标系。眼睛坐标本身应该相对于某物。这是所有相对于其定义的全局坐标系。

世界坐标在X方向上具有固定的i =(1,0,0),在Y方向上具有固定的j =(0,1,0),在Z方向上具有固定的k =(0,0,1)。这些是定义笛卡尔坐标系的向量

但这没有道理!相对于世界坐标定义的坐标是什么?

我想说这是相对于自己的,实际上这将是宇宙的中心(但这太简单了)。

但是从更实际的意义上讲,我想在计算机图形学中将世界空间定义为宇宙(游戏世界)的中心很方便,因此我们可以想象事物之间如何相互联系。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.