0

我目前正在调用glDrawElements2D 场景中的每个精灵。我想改变这一点。

场景由屏幕外渲染缓冲区(FBO)组成,目前只有一个精灵表纹理用于组成整个场景。

如果我将所有内容排队glDrawElements到一个大缓冲区中,我认为这会起作用,但是......将来(当我有多个精灵表纹理时)我每次调用时都必须提交当前缓冲区glBindTexture是必须的?

我问的原因(对于这个通常很明显的问题)是 FBO 有一个深度缓冲区,这让我想知道我绘制精灵的顺序是否无关紧要(这意味着我可以为一个纹理绘制所有精灵,然后绘制其他纹理的所有精灵,并忽略我绘制它们的顺序(使用 Z 轴对它们进行排序)。

4

1 回答 1

2

如果不涉及混合,则顺序实际上并不重要。但是有一个更好的方法:使用文本图集。

这意味着使用一个绘图调用来绘制所有精灵并包含纹理坐标以选择要使用的精灵。(单个)纹理仅包含并排的所有精灵。

于 2012-12-30T19:18:36.860 回答