几何着色器和绘图调用

问题描述

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

GS 的输入(通过上述方法而不是在 GLSL 中使用布局说明符)是 GL_LInes_ADJACENCY,输出是 GL_TRIANGLE_STRIP。在实际的 GLSL 几何着色器中,代码按照 GL_LInes 的预期吐出两个 EmitVertex()。最终在执行 drawcall 时,会使用 glDrawElements (GL_LInes,....)。绘制调用不应该与 GS 输出的 GL_TRIANGLE_STRIP 匹配吗?我不太熟悉几何着色器,所以我一定错过了一些东西。如果是这种情况,openGL 被告知要画线,它是如何计算出要画三角形的?

谢谢!

解决方法

primitive几何着色器从输入图元中生成图元。绘制调用决定了输入原始类型; GS 确定输出原语类型。 OpenGL“弄清楚”它正在绘制三角形,因为这就是 GS 所说的绘制。 GS 是 OpenGL 的一部分;妨碍 OpenGL 的并不是什么外来实体。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...