glDrawElements vs glDrawArray效率

Ami*_*mir 6 iphone android opengl-es

我正在为iOS和Android制作游戏.我在很多地方都看到使用索引绘制比绘制三角形数组更有效.

问题是我正在使用有损压缩顶点(如md2的文件格式)并且它只需要单独的索引 - 数组:N*3(xyz)*1(uchar)+ translate(12字节)+ scale( 12个字节).元素:N*3(xyz)*4(uint)+数组/ ~10

似乎数组比索引和压缩元素更好的选择,尽管苹果的OpenGL分析器工具说我应该使用glDrawElements ..

OpenGL实现是否更喜欢索引数组?或者是因为索引数组包含的数据少于常规未压缩数组?

ps我正在使用OpenGL es 2.0,而顶点着色器是解压缩顶点的人.

Wro*_*lai 1

使用glDrawElements()将节省大量内存,并且您可以按任何顺序指定数组元素。

但是,使用glDrawArrays()时,您唯一的选择是按顺序迭代列表。

必须进行实验。