【发布时间】:2020-07-12 07:08:58
【问题描述】:
我想要一个单一的着色器程序,它有一个计算阶段和标准图形阶段(顶点、tess 控制、tess eval、片段)。
不幸的是,如果我将 Compute 阶段附加到程序的其余部分然后链接它,对位置查询的调用,例如 glGetAttribLocation(对于任何阶段的制服/属性)开始返回 -1,表明他们未能找到命名的对象。我还尝试使用 layout(location=N),结果没有绘制任何内容。
如果我将阶段附加到两个不同的着色器程序并一个接一个地使用它们,两者都运行良好(计算着色器写入 VBO,绘图着色器从同一个 VBO 读取),除了我必须切换他们之间。
将计算阶段与标准图形阶段相结合是否有限制?我能找到的所有示例都有两个程序,但我没有找到解释为什么会这样。
【问题讨论】: