quand charger les shaders
Bonjour,
Je n'ai jamais développé de shaders, ma question paraitra peut etre evidente a certains :
Est il possible d'appliquer plusieurs pixel shaders en une seule passe de rendu ?
Je développe un programme modulaire, chaque module contient une fonction "render". La fonction chargée de dessiner parcourt le tableau des modules et appelle leur fonction "render" avant de swapper les buffers. C'est a dire que la fonction "render" de chaque module est appelée dans une seule et meme passe de rendu; or il se peut que certains modules aient a utiliser leur propre pixel shader, differents de celui des autres modules. Enfin, les modules n'ont aucune connaissance de l'existence des autres modules. Peut on imaginer un code dans le style :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
void Module::render ()
{
loadMonShader ();
mesAppelsOpenGL(); // style glBegin(...), glEnd()
}
avec comme fonction de rendu :
void display ()
{
for (unsigned int i=0 ; i < nbModule ; ++i) moduleArray[i].render ();
glFlush ();
swapBuffers ();
} |
En fait, ma question pourrait etre : peut on changer le shader a executer n'importe quand ?
Merci pour votre attention.
quand charger les shaders