在我的引擎中,我想避免使用线条和单独的三角形类型。我想用两个相同的三角形绘制线条。但在opengl中,这个三角形不会被显示,因为它具有零区域,因此不能覆盖像素。OpenGL:使用退化三角形的绘制线
在内部,在驱动程序级别,使用退化三角形绘制一条opengl线条,并使用不同的光栅化规则,其中每条扫描线至少绘制一个像素。
D3d有一些选项,您可以将光栅化设置为始终绘制每个扫描行的第一个像素 - 有效地完成我在d3d中所需的操作。
但我怎样才能做到这一点与opengl?我看不到任何允许您更改光栅化规则的命令。
也许glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); 但是如果你不得不改变线条和多边形的opengl状态,那么不使用GL_LINES的优势在哪里? – Arne
你在说什么D3d选项? – Jerem
我认为我没有听说过D3D标志......通常退化三角形在GL和D3D的顶点设置阶段都被拒绝(例如,即使顶点着色器没有被执行,更不用说像素了/片段着色器)。如果您渲染三角形条带,禁用退化拒绝会很奇怪,因为对于任何通用模型数据,通常会有大量的退化。你会得到......线路到处都是,我不知道为什么这是可取的? – MuertoExcobito