2013-07-06 110 views
0

是否可以绘制多个OpenGL图元形状和一次对glDrawElements或glDrawArrays的调用?在glDrawElements/glDrawArrays中绘制多个OpenGL图元形状

例如:

在顶点[0到N ...]使用GL_TRIANGLE_STRIP而在顶点[N到M]使用GL_QUADS?

或者还有什么其他方法可以解决这种问题吗?

因为我想限制glDrawers的呼叫。

我该如何使用GL_TRIANGLE *来实现这样的效果?

enter image description here

它的假设是有色的矩形。

+1

声音很像[在XY问题](http://meta.stackexchange.com/q/66377/218740)。你真的想要达到什么目标? –

+0

@RogerRowland是的,我总是这样问,等等我会更新我的文章 – mr5

+0

Numberi转角会简化提及它们 –

回答

1

最接近你可以得到的是使用glDrawElements和GL_TRIANGLES,根据需要重用相应形状的点(已经用这个将begin ... end序列转换为更少绘制调用的现代GL)。例如,如果要绘制GL_QUAD,请将角坐标存储在顶点数组中(与您对glDrawArrays()所做的操作相同),然后将0,1,2,0,2,3存储在元素数组中打造四出两个三角形的

见线134个FF这个例子中(这是Java源代码,但它应该是直截了当地建立用C类似的东西++): https://code.google.com/p/playn-gl11-emulation/source/browse/src/main/java/playn/gl11emulation/MeshBuilder.java