四线组如何在线框模式下呈现为线条?

时间:2011-09-22 12:45:55

标签: opengl gpu wireframe quad

人们一直在告诉我“GPU只渲染三角形”。

但是你如何解释GPU渲染四线仅在线框模式中的四线,不应该用5行渲染它,因为GPU无法理解四边形?

另一方面,如何在未来GL_QUADS被禁止的情况下模拟四边形?我是否需要一个着色器,我是否需要为每个对象生成新的行数组,我只是简单地从GL_FILL切换到GL_LINE?

2 个答案:

答案 0 :(得分:3)

线条与填充的图元不同。每当启动填充的基元时切换到glPolygonMode(…, GL_LINE)(GL_TRIANGLES,GL_QUADS),OpenGL将不会发送填充基元的命令,而是填充基元的顶点之间的线。因此GL_TRIANGLES转换为3个GL_LINES的元组,GL_QUADS转换为4个GL_LINES的元组。 GL_POLYGON被翻译为GL_LINE_LOOP。当然,这些翻译不会发生在OpenGL方面,但OpenGL驱动程序会向GPU发送与已发送的命令相同的命令; GL_LINE多边形模式和发送实际线条之间也存在一些细微差别,最值得注意的是边缘标志的评估。

答案 1 :(得分:1)

我完全不明白你的问题,但从我的理解是答案。

有两个概念
1. 插值用于确定要在一条线上绘制哪些像素 2. 光栅化用于确定要分配给三角形内部像素的属性(颜色,纹理等)。 GPU可以仅栅格三角形仅插入线。因此,当您在线框模型中时,仅完成多边形边界的插值。但是当我们处于实体几何模型以及插值时,我们也会对多边形进行栅格化。