【发布时间】:2012-04-18 13:55:32
【问题描述】:
我想在 OpenGL ES 2.0 中解析模型并渲染 4 顶点多边形(矩形),而不是使用两个三角形,我想为每个四边形/矩形使用一个三角形带。
问题是我的矩形没有在整个模型中连接。如果我有三个四边形(12 个顶点),我想像这样绘制它们(numOfQuadFaces = 3):
glDrawArrays(GL_TRIANGLE_STRIP, 0, numOfQuadFaces*4);
对顶点数组进行排序,以便每四个顶点开始一个新的四边形。但是当然 OpenGL 将其解释为对数组中第三个顶点之外的每个新顶点开始一个新三角形。我可以在某个地方指定我想要长度为 4 的单个三角形条/四边形吗? - 这样我就可以画出类似的东西(如果当然只在 glDrawArrays- 调用):
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDrawArrays(GL_TRIANGLE_STRIP, 4, 4);
glDrawArrays(GL_TRIANGLE_STRIP, 8, 4);
【问题讨论】:
-
感谢 Andreas 下方的帮助,但我在为 iOS 开发时坚持使用 OpenGL ES。模型是由用户动态加载的,所以我需要有一些可以直接工作而不是来自 OpenGL 3.x 的东西。我确实将所有四边形转换为三边形,但我只是觉得我在浪费内存,特别是因为我需要多面阴影(即我的三边形不能共享顶点,因为每个顶点都需要自己的法线向量,而多面阴影在 OpenGL ES 上不是一个选项据我所知)。
标签: ios opengl-es gl-triangle-strip