【发布时间】:2016-09-15 13:09:27
【问题描述】:
我想绘制两个立方体,它们之间有一个矩形,所以我将顶点数据存储到一个 vbo 中,然后我创建了一个 ebo(元素缓冲区对象)以避免额外的顶点(42 对 12)。 我需要单独绘制它们,因为我希望矩形反映向上的立方体,在绘制矩形时进行模板测试并禁用深度蒙版。 我想我可以用 glDrawElements 调用绘制第一个立方体
glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_INT, 0);
然后,为了绘制 ractangle,我正在尝试使用 glDrawRangeElements
glDrawRangeElements(GL_TRIANGLES, 36, 41, 6, GL_UNSIGNED_INT, 0);
但它只是在绘制立方体的底部。
对于最后一个立方体,我使用与第一个相同的绘制调用,只是在 z 轴上反转它。
我认为我的 glDrawRangeElements 参数有问题,因为我尝试只调用第一个立方体,然后调用矩形
glDrawElements(GL_TRIANGLES, 42, GL_UNSIGNED_INT, 0);
它有效。
glDrawRangeElements 调用有什么问题?
编辑:我通过不使用 glDrawRangeElements 调用而是一个简单的 glDrawArrays 调用来解决,重新排列矩形的顶点以绘制两个三角形;
【问题讨论】: