3D数学7-坐标系

05/18/2020

世界坐标系(World Space)

世界坐标系是一种特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。从另一方面说,能够用世界坐标系描述其他坐标系的位置。

关于世界坐标系的典型问题都是关于初始位置和环境的

  • 每个物体的位置和方向
  • 摄像机的位置和方向
  • 世界中每一个点的地形是什么
  • 各物体从哪里来,到哪里去(NPC运动策略)

物体坐标系(Object Space)

物体坐标系是和特定相关联的坐标系。每个物体都有它们独立的坐标系。当物体移动或改变方向时,和该物体相关联的坐标系将随之移动或改变方向。

遇到相关联问题

  • 周围有需要相互作用的物体吗?(我要攻击它吗)
  • 哪个方向?在我前面吗?(我应该向它射击还是转身逃跑)

摄像机坐标系(Camera Space)

摄像机坐标系是和观察者密切相关的坐标系。摄像机坐标系和屏幕坐标系相似,差别在于摄像机坐标系在3D空间,另一个在2D空间。摄像机坐标系能被看作是一种特殊的物体坐标系。摄像机坐标系中,摄像机在原点,x轴向右,z轴向前,朝向屏幕内或摄像机的方向,y轴向上。

典型问题

  • 3D空间中的给定点在摄像机前方吗
  • 3D空间中的给定点是在屏幕上,还是超出了摄像机平截椎体的左右上下边界。(平截椎体就算是摄像机能观察到的金字塔区域)
  • 某个物体是否在屏幕上?部分还是全部
  • 两个物体,谁在前面?(可见性检测)

通过投影可以把摄像机转换到2D屏幕上

惯性坐标系(Inertial Space)

惯性坐标系的原点和物体坐标系的原点重合,但惯性坐标系的轴平行于世界坐标系的轴。物体坐标系转换到惯性坐标系只需要旋转,从惯性坐标系到世界坐标系只需要平移。绕物体坐标系的原点旋转到物体坐标系的轴和世界坐标系的轴平行得到惯性坐标系,最后,把惯性坐标系的原点平移到世界坐标系的原点就完成惯性坐标系到世界坐标系的转换。

物体空间与世界空间

世界坐标系有旋转(Rotation),平移(Translation)和缩放(Scale)。通过世界变换,我们可以将物体模型从自身的物体坐标系转换到世界坐标系。也可以理解为,物体从世界原点开始缩放,旋转,然后平移到目标位置,这样每一个物体都在同一个世界空间中表示。
W o r l d S p a c e = [ u x u y u z 0 v x v y v z 0 w x w y w z 0 T x T y T z 1 ] World Space = \begin{bmatrix} u_{x} & u_{y} & u_{z} & 0\\ v_{x} & v_{y} & v_{z} & 0\\ w_{x} & w_{y} & w_{z} & 0\\ T_{x} & T_{y} & T_{z} & 1\\ \end{bmatrix}
u,v,w前三行表示物体坐标系三个互相垂直的轴向量。而T向量表示上述坐标轴原点在世界坐标系的位置坐标,这种表现形式可以理解为物体坐标系在世界坐标系的位置。

  • W = SRT 先缩放,再旋转,最后平移,顺序很重要,影响结果。

视图矩阵ViewMatrix

摄像机空间,又叫观察空间,从世界坐标系转换到物体坐标系,W = RT 的逆矩阵可以得到。

  • V = W 1 = T 1 R 1 V =W^{-1}= T^{-1}R^{-1}
  • 视图矩阵还不要用到缩放矩阵,只需要摄像机先平移到原点,再旋转到轴与世界的轴平行就可以。

3D Math 第三章
DX11 变换更多详解 – X_Jun

猜你喜欢

转载自blog.csdn.net/weixin_44200074/article/details/106187807