下面的代码片段给予了完全相同的结果:
1.
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glDrawElements(GL_LINE_LOOP, vbo.rows(), GL_UNSIGNED_INT, 0);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glDrawElements(GL_LINE_LOOP, vbo.rows(), GL_UNSIGNED_INT, 0);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glDrawElements(GL_TRIANGLES, vbo.rows(), GL_UNSIGNED_INT, 0);
那么,每个选项是否有不同的用途?(或者GL_LINE_LOOP
只是多边形模式的覆盖)?
编辑:我正在试用libigl示例项目。下面是输出的屏幕截图:
1条答案
按热度按时间dffbzjpn1#
glPolygonMode
改变光栅化模式,但不更改primitive。基元类型保持不变,仍绘制GL_TRIANGLES
基元。glPolygonMode
对三角形以外的其他基元没有影响。GL_LINE_LOOP
是一种不同的基元类型。它将所有顶点连接到一条线上。如果试图绘制多个分离的三角形(三角形之间有间隙),那么您就会看到不同之处。您可以使用glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
和GL_TRIANGLES
图元绘制多个单独的三角形轮廓,但不能使用GL_LINE_LOOP
图元。