在顶点着色器中移动/旋转形状

选择

我正在编写一个使用OpenGL绘制许多移动/旋转多边形的程序。每个多边形在世界坐标中都有一个位置,而其顶点则用局部坐标表示(相对于多边形位置)。每个多边形也有一个旋转。

我能想到的唯一方法是通过每帧中的平移/旋转来计算顶点位置,然后将其推到绘制的GPU上,但是我想知道是否可以在顶点着色器中执行此操作。

我以为可以在局部坐标中表示顶点位置,然后向每个顶点添加位置和旋转属性,但是后来我发现,这并没有比在每个帧上推新顶点位置更好。

我应该在CPU上进行这种计算,还是有一种方法可以在顶点着色器中有效地进行计算?

Bartvbl

顶点着色器确实负责变换几何。但是,顶点着色器将为场景的每个顶点运行。如果在顶点着色器中进行转换,则将一遍又一遍地执行相同的计算,每次都会产生相同的结果(与简单地将模型视图投影矩阵与顶点坐标相乘)。因此,就效率而言,最好在CPU端执行此操作。

如果模型很小(如您的情况),那么我认为不会有太大的区别,因为您仍然必须设置应该以某种方式绘制多边形的坐标。在这种情况下,在CPU端进行一次计算仍然是最好的方法,因为它一次进行计算与多边形的顶点数量无关,并且可能会导致代码更清晰,因为这样可以更轻松地查看您的内容。在做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章