不管是何种坐标变换,最终都落实到顶点上,顶点被传入shader,因此在shader中变换它。
模型变换
- 模型变换,就是对顶点的变换,无论此顶点在 [世界空间坐标系],还是[OpenGL标准坐标系]
- 将顶点与之前提到的坐标左乘即可:
-
- gl_Position = modelTransMatrix * vec4(originPos,1.0);
-
- modelTransMatrix = TX(4,4) * SX(4,4) * ZX(4,4)
-
- 最终:gl_Position = TX(4,4) * SX(4,4) * ZX(4,4) * vec4(originPos,1.0);
视角变换
- 视角变换涉及 Camera :
- Camera所摄制的内容就是屏幕显示的内容。
- Camera的中心 [位置Pos] 就是 [屏幕中心 | OpenGL标准坐标系原点]。
- Camera 与 世界空间坐标系 分离后
- Camera的朝向,是一个三维方向向量。
- Camera的 三个偏航角为:
- 垂直于 世界坐标系Y轴左右摆动:YAW
- 垂直于 世界坐标系X轴
- 创建Camera就是将 屏幕中心[OpenGL标准坐标系] 封装起来