54、OpenGL ES 3D 编程:矩阵、堆栈与分层系统

OpenGL ES 3D 编程:矩阵、堆栈与分层系统

在 3D 图形编程中,矩阵和变换是非常重要的概念。下面将详细介绍矩阵的基本性质、矩阵堆栈的使用以及如何利用矩阵堆栈构建分层系统。

1. 矩阵和变换

矩阵可以将点(在图形编程中通常是顶点)移动到新的位置,通过矩阵与点的位置相乘来实现。矩阵具有以下常见性质:
- 平移 :可以沿每个轴平移点。
- 缩放 :将点的每个坐标乘以一个常数。
- 旋转 :使点绕某个轴旋转。
- 单位矩阵 :与点相乘不会改变点的位置;与矩阵相乘也不会改变矩阵。
- 矩阵相乘 :两个矩阵相乘得到一个新矩阵,新矩阵会将原矩阵的变换都应用到点上。

OpenGL ES 提供了三种类型的矩阵:
| 矩阵类型 | 作用 |
| ---- | ---- |
| 投影矩阵 | 用于设置视锥体的形状和大小,决定投影类型和显示的世界范围。 |
| 模型视图矩阵 | 用于在模型空间中变换模型,并将模型放置到世界空间中。 |
| 纹理矩阵 | 用于动态操作纹理坐标,但在某些设备上此功能有问题,一般不使用。 |

在 3D 编程中,我们可以绕任意轴旋转模型,而不仅仅是之前的 z 轴。实际上,之前渲染时就已经在 3D 空间中工作,只是忽略了 z 轴。

2. 矩阵堆栈

在 OpenGL ES 中,我们通常这样使用矩阵:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值