关于GL_VERTEX_ARRAY的问题

时间:2011-06-25 02:29:15

标签: opengl vertex-array vertexdata

这仅仅是出于兴趣,但GL_VERTEX_ARRAY将“保持”并通过drawArrays()等渲染的椎体量有限制吗?或者我理论上可以通过几百万个顶点,仍然可以调用drawArrays()吗?

2 个答案:

答案 0 :(得分:3)

肯定有一个限制,但据我所知它只是基于可用内存,所以你可能有几百万个顶点。

答案 1 :(得分:3)

由于OpenGL-1.2在使用glDrawRangeElements时有一定的限制:

  

实现表示建议的最大顶点和索引量   数据,可以通过调用查询   具有象征意义的GetIntegerv   常量MAX_ELEMENTS_VERTICES和   MAX_ELEMENTS_INDICES。如果 end-start + 1   大于MAX_ELEMENTS_VERTICES的值,或者如果count是。{   大于MAX_ELEMENTS_INDICES的值,则呼叫可以在。{   性能下降。没有   要求所有顶点   范围开始;最后引用。   但是,实施可能   部分处理未使用的顶点,   从可能的方面降低性能   用最佳索引集实现。

但这更像是一种推荐,一种严格的约束。除此之外,真正的限制是安装的内存量,以及索引元素数组所选类型可以解决的问题

然而,glDrawRangeElements的限制通常也可以很好地指示批量大小。