我在OpenGL应用程序中引入了几何着色器。我的着色器有很多“变化”变量,我从顶点着色器传递到片段着色器。现在,在引入几何着色器后,我必须手动传递每个顶点的几何着色器中的每个变化值。有没有办法避免这种情况并“自动”做事?
答案 0 :(得分:2)
没有
只要在管道中引入几何着色器,如果要将变量从顶点着色器传递到片段着色器,就必须手动传递它们,从顶点着色器创建输入变量,并将输出变量创建到片段着色器。我不知道您使用的是哪个GLSL版本,但您可能需要查看GLSL 3.30 spec的第4.3.4节。
答案 1 :(得分:2)
不,因为除了noop几何着色器之外没有合理的方法可以做到这一点,如果几何着色器没有对几何体做任何事情,为什么它首先启用?
通常,几何着色器将许多顶点作为输入,并生成(不同的)顶点数作为输出。那么哪个输入顶点应该自动映射到哪个输出顶点?