glDrawElements和多个图像
问题描述:
在大街上的字是glDrawElements比glDrawArrays快得多。glDrawElements和多个图像
所以我想显示所有使用glDrawElements。我遇到的问题是我有一堆想要弹出到屏幕上的图像。每个图像都有不同的纹理。
是否可以使用glDrawElements来做到这一点?
我该如何切换纹理
答
如果您经常在多个图元之间共享顶点,则顶点索引(即glDrawElements
)可以大大减少顶点缓冲区的大小。
例如,如果您使用GL_TRIANGLES
绘制网格,则一定要使用索引。如果你只是画一堆不相交的三角形,那么没有太多理由使用索引。
不管你是否使用glDrawElements
或glDrawArrays
,它总是希望减少绘制调用的次数。使用纹理地图集可让您合并多个平局调用,否则将与调用glBindTexture
分开。
答
您不能,直接。
你可以做的是制作一个纹理图集,通过制作一个包含所有小纹理的大纹理,然后相应地调整纹理坐标。
另外,您从哪里听说过glDrawArrays
和glDrawElements
之间的比较?我从来没有见过一个令人信服的,全部包括在内的比较。
我从一个名为71平方的网站上的视频教程中得到它。无论如何,我想对iphone而言......使用3 gldrawarrays调用vs 1 gldrawelement调用的速度非常慢,原因是使用了cpu并且iphone cpu无法跟上。使一个呼叫使用图形硬件加速来做同样的事情。 – Mel 2009-11-01 15:57:03