我想要两个像素着色器;第一个做一件事,然后下一个做别的事情。这是可能的,还是我必须将所有内容打包到一个着色器中?
答案 0 :(得分:20)
你可以这样做,例如通过从主入口点到各种着色器对象中实现的函数进行函数调用。
main() {
callToShaderObject1()
callToShaderObject2()
}
每个callToShaderObject函数都可以存在于不同的着色器对象中,但所有对象必须在相同的程序中附加和链接才能使用。
答案 1 :(得分:4)
它们无法同时运行,但您可以自由地为不同的几何体使用不同的着色器,或使用不同的着色器在多个通道中渲染。