坐标系描述
摘自 <3D数学基础-图形与游戏开发>
世界坐标系
世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架.从另一方面说,能够用世界坐标系描述其他坐标系的位置,而不能用更大的,外部的坐标系来描述世界坐标系.
世界坐标系也被广泛乘坐全局坐标系或者宇宙坐标系.
关于世界坐标系的典型问题都是关于初始位置和环境的,如:
- 每个物体的位置和方向.
- 摄像机的位置和方向.
- 世界中每一点的地形是什么(如山丘,建筑,胡泊等)
- 各物体从哪里来,到哪里去.(NPC的运动策略)
物体坐标系
物体坐标系是和特定物体关联的坐标系.每个物体都有它独立的坐标系.当物品移动或者改变方向时,和物体相关联的坐标系随之移动或者改变方向.
在某些情况下,物体坐标系也被称作模型坐标系.因为模型顶点的坐标都是在模型坐标系中描述的.有时候也称它作身体坐标系.
在物体坐标系中可能会遇到的问题:
- 周围有需要互相作用的物体吗?(我要攻击它吗?)
- 哪个方向?在我前面吗?我左边一点?右边?(我应该向它射击还是转身逃跑?)
摄像机坐标系
摄像机坐标系是和观察者密切相关的坐标系.摄像机坐标系和屏幕坐标系相似,差别在于摄像机坐标系位于3d空间中而屏幕坐标系在2d平面里.摄像机坐标系能被看做是一种特殊的”物体”坐标系,该”物体”坐标系就定义在摄像机的屏幕可视区域.
关于摄像机坐标系的典型问题是那些物体可以在屏幕中绘制出来.如:
- 3d空间中的给定点在摄像机前方么?
- 3d空间中的给定点是在屏幕上,还是超出了摄像机平截锥体的左,右,上,下边界?
- 某个物体是否在屏幕上?它的部分在?或全部不在!?
- 两个物体,谁在前面?(可见性检测)
惯性坐标系
为了简化世界坐标系到物体坐标系的转换,人们引入了一种新的坐标系,称作惯性坐标系.意思是在世界坐标系到物体坐标系的”半途”.
惯性坐标系的原点与物体坐标系的原点重合,但是惯性坐标系的轴平行于世界坐标系的轴.
为什么引入惯性坐标系?因为从物体坐标系转换到惯性坐标系只需要旋转,从惯性坐标系到世界坐标系只需要平移.分开考虑这两件事比糅合在一起容易的多
坐标系转换
知道某一点的坐标,怎样在另一坐标系中描述该点.这项技术的术语名称是:坐标转换.
将轴从物体坐标系移动到世界坐标系:
- 将物体坐标轴旋转n度到惯性坐标系.
- 将惯性坐标系平移到世界坐标系.
将点从物体坐标系移动到世界坐标系:
- 将物体坐标轴反方向旋转n度到惯性坐标系.(反方向是相对轴的方向)
- 将惯性坐标系反方向平移到世界坐标系.(反方向是相对轴的方向)
将点转换到世界坐标系 相对 将轴转换到世界坐标系是反方向.
比如: 您向前行驶,世界就像在向后移动.