是否可以绘制多个OpenGL原始形状并调用glDrawElements或glDrawArrays?
例如:
在顶点[0到N ...]中使用GL_TRIANGLE_STRIP而在顶点[N到M]中使用GL_QUADS?
或者还有其他方法可以解决这类问题吗?
因为我想限制对glDrawers
的调用。
如何使用GL_TRIANGLE *?
实现这样的目标
假设是彩色矩形。
答案 0 :(得分:1)
你可以得到的最接近的是将glDrawElements与GL_TRIANGLES一起使用,根据需要重复使用相应形状的点(使用它来将开始......结束序列转换为现代GL,并减少绘制调用)。
例如,如果要绘制GL_QUAD,请将角坐标存储在顶点数组中(就像对glDrawArrays()一样,然后将0,1,2,0,2,3存储在elements数组中用两个三角形构建四边形。
见第134行。这个例子(它的Java源码,但它应该是直接在C ++中构建类似的东西): https://code.google.com/p/playn-gl11-emulation/source/browse/src/main/java/playn/gl11emulation/MeshBuilder.java