Bonjour,
Je suis en train de développer quelques outils pour le rendu de scene en OpenGL(+ quelques petit jeux)
Je me retrouve dans un cas ou je dois faire un rendu de plusieurs milliers d'objets (2 à 3 modèle différents). Pour l'instant j'appelle glDrawElements pour chaque objet et ça passe sans trop de problème, en restant raisonnable.
Afin d'optimiser tout ça je souhaite faire appel à glDrawElementsInstanced disponible dans la version 3.1. , et mettre un jour le Buffer contenant les matrices de transformation de chaque instances.
Le problème :
Tous les exemples que j'ai pu voir utilise glVertexAttribDivisor pour passer les attributs matrices du model(ou model view projection selon le choix) sauf que celle ci n'est dispo qu'en version 3.3
Je pourrais faire en sorte de récupérer l'id de l'instance dans le vertex shader, de stocker ces matrices de transformations dans une texture puis un lookup, mais cette solution me parait couteuse, la texture devant être mis à jour à chaque rendu.
Quelqu'un aurait une piste ?
Merci de votre attention.






Répondre avec citation


)
Partager