Chr*_*ica 10
不幸的是,您可能必须实际将几何图形GL_LINES
完全转换为线基元并使用. 然而,这当然不是通过简单地在你的绘制调用中替换GL_TRIANGLES
(或其他)GL_LINES
来完成的,你必须完全重新排序你的顶点以适应新的原始模式。这要求您至少在glDrawElements...
调用中使用不同的索引数组,或者,对于非索引渲染 ( glDrawArrays...
),完全不同的顶点数组(不过,如果您真的选择这样做,这可能是切换到索引绘图的正确时机)。
但是,如果您有可用的几何着色器(不过,似乎 WebGL 不支持它们,OpenGL ES 应该从 3.2 开始,desptop GL 也是如此,但glPolygonMode
无论如何它已经很老了)并且还没有将它们用于其他事情,事情变得更容易。在这种情况下,您可以在顶点和片段处理之间安装一个相当简单的几何着色器,该着色器采用三角形并为每个三角形输出 3 行:
layout(triangles) in;
layout(line_strip, max_vertices=4) out;
void main()
{
for(int i=0; i<4; ++i)
{
// and whatever other attributes of course
gl_Position = gl_in[i%3].gl_Position;
EmitVertex();
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用适当的基于块的着色器接口,那么您应该能够将现有的顶点和片段着色器用于其余部分,只需将几何着色器挂在它们之间,即可为基于三角形的图元进行各种线框渲染。
可以想象,您可以使用 GL_LINES 渲染整个场景
归档时间: |
|
查看次数: |
2303 次 |
最近记录: |