OpenGL实例教程06:位移变换
一个简单的位移变换
沿着任意长度和方向的矢量移动物体。假设你想要将左图中的三角形移动到右图中的位置。

这看上去非常容易,最简单的加法就可以。但我们后面还需要处理旋转变换,缩放变换,我们希望最终将一组矩阵相乘得到一个综合变换。因此位移也行需要用矩阵乘法来表示。
用矩阵乘以点表示加法
所以,现在的问题是如何用矩阵乘法表示加法的效果?

如果我们只使用3 × 3的矩阵,确实没有简单的方法,但如果使用4 × 4矩阵,就可以:

像这样用一个4维向量来表示一个3维向量被称为齐次坐标。最后一位w如果为0,表示为向量(不能位移),为1表示为点(可以位移)。
后面的工作就简单多了,只需要使用uniform变量,将矩阵传输到shader里即可。
shader代码
应用程序代码