glDrawElements和多个图像

时间:2009-10-25 21:43:56

标签: iphone opengl-es

街上的Word是glDrawElements比glDrawArrays快得多。

所以我想使用glDrawElements显示所有内容。我遇到的问题是我有一堆想要弹出到屏幕上的图像。每张图片都有不同的纹理。

是否可以使用glDrawElements来执行此操作?

如何切换纹理

2 个答案:

答案 0 :(得分:0)

你不能,直接。

你可以做的是制作一个纹理图集,制作一个包含所有小纹理的大纹理,然后相应地调整纹理坐标。

另外,您在哪里听说过glDrawArraysglDrawElements之间的比较?我从未见过令人信服的,包含所有案例的比较。

答案 1 :(得分:0)

如果您经常在多个基元之间共享顶点,则顶点索引(即glDrawElements)可以大大减小顶点缓冲区的大小。

例如,如果您使用GL_TRIANGLES绘制网格,那么您肯定希望使用索引。如果您只是绘制一堆不相交的三角形,则没有太多理由使用索引。

无论您使用的是glDrawElements还是glDrawArrays始终都希望最大程度地减少绘制调用次数。使用纹理图集可以组合多个绘制调用,否则这些调用将通过调用glBindTexture来分隔。