如何在 OpenGL 中高效地制作 2D 精灵动画



我正在使用 VBO 将 2D 精灵渲染到我的屏幕上。我使用单个 glDrawElements 调用来绘制由退化三角形连接的所有精灵的三角形条带。

我想让我的代码面向对象,所以我有类来代表我在游戏中拥有的各种对象,例如,一个用于我的角色,一个用于背景图块等。

我最初的想法是查询哪些对象位于单个"视图"或更大级别的子集中,然后查询这些对象的位置和坐标并绘制它们。这意味着我必须每隔一帧或每隔一帧构建一个向量。此外,我假设我必须在每个类中放置一种计时器,以便在下一阶段需要动画时触发。

想知道使用我描述的方法对性能的影响,以及是否有更好的方法可以在保留 OO 属性的同时做到这一点。

我终于实现了我的解决方案。

我所做的是遍历我的"可绘制"对象列表,并要求它们将它们的顶点添加到向量中,然后将其发送到 VBO。谢谢你在那里为我指出正确的方向,jozxyqk。

看起来很简单,但我想我陷入了思考效率成本,无论如何这都无关紧要。

最新更新