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