0

是否可以绘制多个 OpenGL 原始形状并调用 glDrawElements 或 glDrawArrays?

例如:

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

或者有没有其他方法可以解决这种事情?

因为我想限制对glDrawers.

如何使用 GL_TRIANGLE* 实现这样的目标?

在此处输入图像描述

它应该是彩色矩形。

4

1 回答 1

1

您可以得到的最接近的方法是将 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

于 2013-07-06T07:36:09.630 回答