使用OpenGL在屏幕上绘制多个对象的基本方法

时间:2011-11-14 05:23:57

标签: opengl

我想知道如何在OpenGL中完成基本动画。在我的代码中,我目前在VBO中插入2个形状的所有顶点。然后我选择某些顶点(例如形状的1个顶点,并将其“x”位置改为+1)。然后我重新绘制图像。这是在Opengl中操纵多个对象位置的正确方法和想法吗?

1 个答案:

答案 0 :(得分:0)

答案取决于你的顶点代表什么。如果您需要变形它们代表的模型,那么是的,您必须修改它们的坐标。但是,如果模型保留其形状,则可以使用模型视图矩阵移动对象。

如果您当前使用1个绘制调用,其中多个形状的顶点独立移动,这意味着您必须使用不同的模型视图矩阵为每个形状进行1次绘制调用。

这种方法可能会降低渲染速度,具体取决于您绘制的内容。如果你有许多独立移动的简单形状(例如粒子系统),你会通过执行许多绘制调用来获得较差的性能,并且你的方法更好。如果适用于您的情况,可能更好的(更高级的)是使用顶点着色器根据数学公式移动顶点。

还有许多其他因素会影响渲染时间,但列表中的渲染批量大小很小。

我建议您查看OpenGL red book第3章,了解有关矩阵的更多信息。本书的其余部分与着色器和维也纳世界博览会已经过时了,但我认为这部分很好。