0

所以最近我决定创建一个游戏并使用新版本的 OpenGL 来完成它(注意:游戏是 2D 的)。

到目前为止,我为每个可绘制的类都有一个 VBO。我这样做是为了避免一个类的 1 个实例(6 * 3 个元素)有一个 VBO。现在,正如您在渲染 VBO之前所知道的那样,您绑定了纹理。现在的问题是我开始实现动画然后我意识到动画是不可能的,我无法渲染一个 VBO,它可能包含 5 个乌龟,每个乌龟具有不同的纹理(每个动画关键帧的纹理不同)。

所以回顾一下这个问题: * 一个 VBO 拥有多个海龟。一只乌龟决定攻击。通过切换到攻击纹理开始动画。使成为。VBO 中的所有海龟都在攻击。*

现在这是一个问题:

  • 有没有办法在着色器中切换纹理?
  • 如果以上是不可能的,我该怎么办?
4

1 回答 1

1

找到了我自己的解决方案:

对于每个可以具有动画的对象,制作一个 spritesheet,然后只更改 ST 坐标,而不是为下一帧重新绑定纹理。

于 2013-07-27T22:09:35.840 回答