Lau*_*llo 3 opengl vbo vertices
我有一个包含数千个顶点的OpenGL场景,并希望将它们作为VBO/IBO传递.执行glGetIntegerv(GL_MAX_ELEMENTS_VERTICES,&maxVertices)命令显示最大2048个顶点数量的限制,尽管事实上我有一个最近的视频卡.除此之外,C中的数组仅限于int,因此最大32k个顶点.
我如何解决这些限制,无论如何显示我的所有对象?
该GL_MAX_ELEMENTS_VERTICES
常数仅适用于glDrawRangeElements
呼叫,即使在当时值比大肯定不会让glDrawRangeElements
慢glDrawElements
.手动将批次拆分为较小的部分并不是一个好主意,因为批次应尽可能大,并尽可能少地拨打电话.忘记这个价值,它已经没有任何实际意义了.
顺便说一句,我非常确定你的int可以容纳大于32k的值,就像现代平台(至少那些支持VBO的图形设备)一样,int应至少为32位宽(因此能够保持2G/4G等值.虽然在嵌入式设备上(使用OpenGL ES),您仍可能限制为16位顶点索引.