Iphone 在opengles中组合几何体

Iphone 在opengles中组合几何体,iphone,objective-c,opengl-es,Iphone,Objective C,Opengl Es,我一直在尝试将我所有的几何体组合在一起,并通过一次调用gldrawerelements来同时绘制它们。但是,我唯一能让对象绘制的方法是使用类似for的循环 for (int i = 0; i < TOTAL_NUMBER_OF_INDICES; i += NUMBER_OF_INDICES_PER_OBJECT) { glDrawElements(GL_TRIANGLE_STRIP, NUMBER_OF_INDICES_TO_DRAW, GL_UNSIGNED_BYTE, &a

我一直在尝试将我所有的几何体组合在一起,并通过一次调用gldrawerelements来同时绘制它们。但是,我唯一能让对象绘制的方法是使用类似for的循环

  for (int i = 0; i < TOTAL_NUMBER_OF_INDICES; i += NUMBER_OF_INDICES_PER_OBJECT) {
    glDrawElements(GL_TRIANGLE_STRIP, NUMBER_OF_INDICES_TO_DRAW, GL_UNSIGNED_BYTE, &indices[i]);        
  }
for(int i=0;i<索引总数;i+=每个对象的索引数){
元素(三角形带、索引到绘图的数量、无符号字节和索引[i]);
}

如果我调用gldrawerelements同时绘制所有索引,OpenGL会认为它是一个对象。从我所读到的内容来看,我认为使用VBO可能是一个解决方案,但我在OpenGLES 1.1中没有成功地做到这一点。因此,如果创建VBO是我问题的解决方案,那么如果有人能够帮助我,那就太好了。

虽然使用VBO可能仍然是一个好主意,但您最终需要做的是欺骗OpenGL渲染单个“对象”或顶点序列,使其显示为一组离散元素。执行此操作的技术是在要显示的对象的顶点之间添加“退化三角形”(例如,无法像顶点共线的三角形那样正确渲染的三角形)

如果你想了解更多细节,下面的答案中有一个很好的解释