21

我想要两个像素着色器;第一个做一件事,然后下一个做别的事。这是可能的,还是我必须将所有东西都打包到一个着色器中?

4

2 回答 2

21

您可以这样做,例如通过从主入口点调用函数到在各种着色器对象中实现的函数。

main() {
    callToShaderObject1()
    callToShaderObject2()
}

这些 callToShaderObject 函数中的每一个都可以存在于不同的着色器对象中,但是所有对象都必须在同一程序中附加和链接才能使用。

于 2010-02-27T16:44:39.520 回答
4

它们不能同时运行,但您可以自由地为不同的几何体使用不同的着色器,或者使用不同的着色器在多个通道中进行渲染。

于 2010-02-26T19:48:11.240 回答