Si può avere più di pixel shader (frammento) nello stesso programma?
-
23-09-2019 - |
Domanda
Mi piacerebbe avere due pixel shader; la prima a fare una cosa, e poi il prossimo facendo qualcos'altro. Questo è possibile, o devo mettere in valigia tutto in quello dello shader?
Soluzione
È possibile farlo fare questo, ad esempio, facendo chiamate di funzione dalla entrypoint principale per le funzioni che vengono implementati nei vari oggetti di shader.
main() {
callToShaderObject1()
callToShaderObject2()
}
ciascuna di queste funzioni callToShaderObject può vivere in diversi oggetti shading, ma tutti gli oggetti devono essere allegati e collegata nello stesso programma prima di poter essere utilizzato.
Altri suggerimenti
Non possono funzionare allo stesso tempo, ma si è liberi di utilizzare diversi shader per la geometria diversa, o di rendere in più passaggi utilizzando diversi shaders.