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