OpenGL ES 3D 编程:矩阵、堆栈与分层系统
在 3D 图形编程中,矩阵和变换是非常重要的概念。下面将详细介绍矩阵的基本性质、矩阵堆栈的使用以及如何利用矩阵堆栈构建分层系统。
1. 矩阵和变换
矩阵可以将点(在图形编程中通常是顶点)移动到新的位置,通过矩阵与点的位置相乘来实现。矩阵具有以下常见性质:
- 平移 :可以沿每个轴平移点。
- 缩放 :将点的每个坐标乘以一个常数。
- 旋转 :使点绕某个轴旋转。
- 单位矩阵 :与点相乘不会改变点的位置;与矩阵相乘也不会改变矩阵。
- 矩阵相乘 :两个矩阵相乘得到一个新矩阵,新矩阵会将原矩阵的变换都应用到点上。
OpenGL ES 提供了三种类型的矩阵:
| 矩阵类型 | 作用 |
| ---- | ---- |
| 投影矩阵 | 用于设置视锥体的形状和大小,决定投影类型和显示的世界范围。 |
| 模型视图矩阵 | 用于在模型空间中变换模型,并将模型放置到世界空间中。 |
| 纹理矩阵 | 用于动态操作纹理坐标,但在某些设备上此功能有问题,一般不使用。 |
在 3D 编程中,我们可以绕任意轴旋转模型,而不仅仅是之前的 z 轴。实际上,之前渲染时就已经在 3D 空间中工作,只是忽略了 z 轴。
2. 矩阵堆栈
在 OpenGL ES 中,我们通常这样使用矩阵:
超级会员免费看
订阅专栏 解锁全文
70

被折叠的 条评论
为什么被折叠?



