欢迎光临散文网 会员登陆 & 注册

OpenGL实例教程06:位移变换

2023-03-01 18:18 作者:阿西拜-江西  | 我要投稿

一个简单的位移变换

沿着任意长度和方向的矢量移动物体。假设你想要将左图中的三角形移动到右图中的位置。

移动三角形

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

用矩阵乘以点表示加法

所以,现在的问题是如何用矩阵乘法表示加法的效果?

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

像这样用一个4维向量来表示一个3维向量被称为齐次坐标。最后一位w如果为0,表示为向量(不能位移),为1表示为点(可以位移)。

后面的工作就简单多了,只需要使用uniform变量,将矩阵传输到shader里即可。

shader代码

应用程序代码


OpenGL实例教程06:位移变换的评论 (共 条)

分享到微博请遵守国家法律