Je connais pas trop GLSL (mon truc c'est plutôt HLSL).
Mais pour les grands principes, c'est pareil.
Les Callback sont en fait là pour faciliter l'envoie au shader les éléments
qui lui sont indispensable pour travailler. L'avantage du callback, c'est qu'une
fois définis, la procedure sera appelée avant chaque rendu de l'objet en question.
Pas besoin de penser à faire un appel soit même, ce qui peux être très vite long
et fastidieux quand on gère des centaines de nodes.
Ensuite, les shaders sont aveugle. En d'autre terme il faut lui balancer dans
certains cas un ensemble de donnée qui lui seront indispensable.
Par exemple pour ce qui est de vertexshaders, il faut envoyer les matrices de
base pour un représentation correcte de chaque objet (donc les matrices de
View, projection et World, du moins pour les HLSL, pour les GLSL il y a quelques
éléments qui sont envoyés automatiquement je crois).
Il faut souvent aussi envoyer les élément constituant les material des objets
ainsi que les référence des textures employées.
Les shaders sont très puissants, mais ils ne savent pas 's'accaparer' les éléments
de bases de chaque objet avant de render.
C'est pour cela que dans l'exemple 201, on en passe par toute ces données transmises
dans la procedure
CallbackShader
J'ai surement pas été très clair, mais c'est une amorce de réponse...
