Você pode ter vários shaders de pixel (fragmento) no mesmo programa?
-
23-09-2019 - |
Pergunta
Eu gostaria de ter dois shaders de pixels; o primeiro a fazer uma coisa e depois a próxima fazendo outra coisa. Isso é possível, ou eu tenho que colocar tudo no shader?
Solução
Você pode fazer isso, por exemplo, fazendo chamadas de função do ponto de entrada principal para funções implementadas nos vários objetos do shader.
main() {
callToShaderObject1()
callToShaderObject2()
}
Cada uma dessas funções CalltoshadeRObject pode viver em diferentes objetos de shader, mas todos os objetos precisam ser anexados e vinculados no mesmo programa antes que ele possa ser usado.
Outras dicas
Eles não podem correr ao mesmo tempo, mas você é livre para usar shaders diferentes para geometria diferente ou renderizar em vários passes usando shaders diferentes.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow