几何着色器和绘制调用



我正在处理一个使用几何着色器的旧代码库。它使用"glProgramParameteriEXT(…)来启用和指定GS的输入/输出。问题代码是渲染曲线。

输入到GS(通过上面提到的方法,而不是在GLSL使用布局说明符)是GL_LINES_ADJACENCY和输出是GL_TRIANGLE_STRIP。在实际的GLSL几何着色器中,代码吐出两个EmitVertex(),正如GL_LINES所期望的那样。最后,在执行drawcall时,使用glDrawElements (GL_LINES, ....)。是否绘制调用不应该匹配GS的输出,这是GL_TRIANGLE_STRIP?我不太熟悉几何着色器,所以我一定错过了一些东西。如果是这样的话,openGL如何在被告知要画线的同时画三角形呢?

谢谢!

原语几何着色器从输入原语生成原语。draw调用决定输入原语类型;GS决定输出原语类型。OpenGL"计算出";它在画三角形因为这是GS说要画的。GS是OpenGL的部分;它不是一些外来实体妨碍OpenGL的方式。

最新更新