MirrorYuChen
MirrorYuChen
Published on 2024-12-09 / 43 Visits
0
0

坐标系系统学习笔记

1.坐标系统

  • (1) 局部空间(Local Space)或物体空间(Object Space);
  • (2) 世界空间(World Space);
  • (3) 观察空间(View Space)或视觉空间(Eye Space);
  • (4) 裁剪空间(Clip Space);
  • (5) 屏幕空间(Screen Space);

2.坐标变换

coordinate_systems.png

​ 其中几个比较重要的转换矩阵为:模型(Model)、**视图(View)投影(Projection)**三个矩阵,具体过程如下:

  • (1) 顶点坐标开始于局部空间(Local Space),称为局部坐标(Local Coordinate),经过模型(Model)矩阵变换后,得到世界空间(World Space)下坐标,称为世界坐标(World Coordinate)
  • (2) 世界坐标(World Coordinate)再经过视图(View)矩阵变换后,就得到观察空间(View Space)下的观察坐标(View Coordinate),**观察坐标(View Coordinate)**是指以相机或观察者角度观察到的坐标;
  • (3) 得到观察坐标(View Coordinate)坐标后,需要对观察坐标(View Coordinate)进行裁剪(仅保留近平面到远平面之间区域,这个区域就是裁剪空间(Clip Space)),得到将会出现在屏幕上的顶点;
    perspective_frustum.png
  • (4) 最后,通过视口变换(Viewport Transform),将裁剪坐标转换为**屏幕空间(Screen Space)**屏幕坐标;

​ 可以用矩阵形式描述如下:

V_{clip} = M_{projection}\cdot M_{view} \cdot M_{model} \cdot V_{local}

3.左右手坐标

3.1 左右手坐标系定义

​ 常见的左右手坐标系就有以下两种:

left_right_coordinate.png

left_right_other.png

3.2 左右手定则

​ 由于左右手坐标系确实容易记混,可以通过如下左手定则和右手定则来帮助判断左右手坐标系:

left_right_principle.png

​ 右手定则:右手拇指竖直向上表示​OZ轴向,将指掌握成弧形,这时指掌到指尖的方式正好是​OX轴经过最短路径转到​OY轴方向。

​ 左手定则:左手拇指竖直向上表示​OZ轴向,将指掌握成弧形,这时指掌到指尖的方式正好是​OX轴经过最短路径转到​OY轴方向。

4.Unity坐标系

​ Unity是典型的左手坐标系,它的物体坐标系和世界坐标系如图所示:X朝右,Y朝上,Z朝里

Unity_world.PNG

​ 观察坐标系则是右手坐标系(worldToCameraMatrix,即​T_{cw}):

Unity_camera.PNG

5.OpenCV坐标系

​ 观察坐标系为右手坐标系:

opencv_coordinate.png

​ 对应手型如下:

OpenCV_Right_Hand.png

6.OpenGL坐标系

​ 观察坐标系为右手坐标系:

OpenGL_coordinate.png

7.IMU坐标系

​ IMU坐标系为右手坐标系,手机平放在桌面上时,陀螺仪获取四元数为​(0, 0, 0, 1),安卓陀螺仪默认Z轴指北:

imu_coordinate.png

8.参考资料


Comment