什么是矩阵变换?
这张图比较直观地展示了OpenGL矩阵变换的过程,下面详解一下其中的含义:
- 首先OpenGL有个世界坐标系,我们渲染的物体就是在世界坐标系中,模型需要放到世界坐标系中,那么当还没放的时候,模型就和世界坐标系没有联系,它就还处于自己的坐标系中,叫做物体坐标系(模型坐标系、局部空间、局部坐标系),也就是图中的LOCAL SPACE;
- 当把模型放到世界坐标系中,模型就在世界坐标系里有了坐标,也就是原来在LOCAL SPACE中的那些坐标值,变成了世界坐标系中的坐标值,帮助我们完成这个变换的就是模型矩阵,对应图中的MODEL MATRIX,于是这样就把模型放到了世界坐标系WORLD SPACE中;
- 放到世界坐标系后,是不是就确定了渲染出来看到的样子?还没有,大家可以想像一下,把一个东西放在世界坐标系的某个地方,可以从近处看观察它,也可以从远处观察它,还可以从上下左右观察它,甚至还可以倒着观察它,因些还需要确定观察它的状态。OpenGL里虚拟出了一个Camera(特别注意,这里的Camera不是指硬件的Camera,可以理解为一个观者者的角度),从API的层面上看ÿ