使用Matrix可以实现这种转换吗?

时间:2016-09-19 19:49:27

标签: matrix graphics geometry opengl-es-2.0 linear-algebra

我尝试拍摄静态的顶点列表,然后使用矩阵将它们绕一个圆圈弯曲,如下图所示。我可以使用基本几何体找到新的顶点,但我不确定如何用矩阵实现它,或者甚至可能。我相信,称之为圆圈的中心' C'并调用从顶点到C' d'的距离,即x' = Cx + d * cos(theta)和y' = Cy + d * sin(theta)。 (Cx和Cy是C的组分)。但是,我并不认为这本身可以转换为矩阵。

The Transformation

对于背景,我正在制作3D Snake游戏。 Snake由段组成,每个段应连接到下一个段。我有段之间每个连接的方向和位置,所以我想我可以通过连接每个部分来构建段,如图所示。但是,计算每帧上每个段的顶点效率很低。如果我可以静态列出顶点,然后在模型世界矩阵中对其进行变换,那将更快,并且适合我目前正在使用的方法。我在下面加了一个简单的蛇图(忽略头部)。

The Snake

如果不可能,那么在给出类似结果时是否可以使用矩阵进行替代?

1 个答案:

答案 0 :(得分:0)

是的,有可能。

骷髅动画: 您实际上可以向对象添加一系列骨骼,并且只需将旋转应用于骨骼以获得完美的曲线。这是实现这一目标的最简单方法。但是,不一定是您案例的最快方式。

Just Matrix&权重: 如果弯曲始终为此比例,则必须向每个顶点添加权重信息,然后与具有变换/旋转/比例组合的矩阵相乘。与Skeleton动画相比,这将为您提供更好的性能,因为每个顶点仅使用一个矩阵进行相乘,并且没有层次结构。