glDrawElement 比 glDrawArray 效率好的原因。
Why is this faster than rendering using a vertex buffer and no index buffer?
When using an index buffer the graphics card can make use of a cache of already transformed (vertex-shaded) vertices and when an index is reused, it can use the cached result instead of running the vertex shader again. Of course, this only works if there exists a certain temporal locality, but that is given.
If no index buffer is used, the vertex cache won't be used, because the implicit index is different for each vertex.
上面的意思是说:使用索引,可以重复利用乘矩阵后转换好的数据,因为索引缓存存在相同的的索引,当发现相同的索引时,前面的顶点数据可以不用
再去转换了,直接使用cache当中的就可以。