我正在研究使用几何着色器的旧代码库。它使用“glProgramParameteriEXT(...) 来启用和指定 GS 的输入/输出。有问题的代码是渲染曲线。
GS 的输入(通过上述方法而不是在 GLSL 中使用布局说明符)是 GL_LINES_ADJACENCY,输出是 GL_TRIANGLE_STRIP。在实际的 GLSL 几何着色器中,代码会按照 GL_LINES 的预期吐出两个 EmitVertex()。最终在执行 drawcall 时,使用了 glDrawElements (GL_LINES, ....)。绘制调用是否不应该与 GS 输出的 GL_TRIANGLE_STRIP 相匹配?我不太熟悉几何着色器,所以我一定遗漏了一些东西。如果是这种情况,openGL 如何在被告知绘制线条时绘制三角形?
谢谢!