二、入门篇之图解OpenGL坐标系
2020-07-02 本文已影响0人
小山93
1. 2D
笛卡尔坐标系(由x,y组成)
![](https://img.haomeiwen.com/i9117381/631bb7fca21ed3ac.png)
2. 3D
笛卡尔坐标系(由x,y,z组成)
![](https://img.haomeiwen.com/i9117381/296f7c4a53e687c7.png)
4. 左右手坐标系
在OpenGL
中,只有规范化设备坐标系是遵守左手坐标系原则,其余的均为右手坐标系。
![](https://img.haomeiwen.com/i9117381/1a8bc1ccac81b1b2.png)
5. 局部坐标系/物体坐标系(Model Space
)
物体以自身为参考坐标系,当它旋转或平移时,其相对于自己的坐标也改变
![](https://img.haomeiwen.com/i9117381/c2d17fd5cdf3704d.png)
6. 世界坐标系(Word Space
)
物体以其所在的客观世界环境为参考坐标系
![](https://img.haomeiwen.com/i9117381/2d6bebd4f3eb51ec.png)
7. 惯性坐标系
由物体坐标系转换为世界坐标系的中间过渡坐标系称为惯性坐标系,它与物体坐标系原点重合,与世界坐标系的XY轴平行。如下图所示:
![](https://img.haomeiwen.com/i9117381/7771f1b9711edd4c.png)
8. 观察者/摄像机坐标系(Camera Space
)
以某一个角度来观察物体时,从观察者的角度形成的坐标系
![](https://img.haomeiwen.com/i9117381/c1a3d95b2994f418.png)
9. 裁剪坐标系(Clip Space
)
裁剪坐标是执行矩阵变换和透视投影之后,但在执行透视除法之前的坐标。超出裁剪空间的坐标会被丢弃。
10. 规范化设备坐标系(NDC Space
)
是以屏幕中心为原点,左手坐标系原则,每个轴的取值范围为-1 ~ 1,超出范围的内容将不会显示。 右上角为(1,1,1)
![](https://img.haomeiwen.com/i9117381/53bda4c59fb31aab.png)
11. 屏幕坐标系(Window Space
)
是手机窗口对应的坐标系,以左上角为原点
![](https://img.haomeiwen.com/i9117381/eb38ba5204b6e8d2.png)
12. 坐标系的转换
- 由
3D
数据转换成2D
图形,需要经过一系列的变换,整个过程如下图所示。
坐标系转换步骤.png
坐标系转换步骤图示.png
-
OpenGL
中只定义了裁剪坐标系、规范化设备坐标系和屏幕坐标系。而局部坐标系(模型坐标系)、世界坐标系和相机坐标系都是为了方便用户设计而自定义的坐标系,他们的关系如下图所示:
image.png