-
Méthode avec les VBO
Bonjour,
Je me creuse la tête pour comprendre comment utiliser efficacement les VBO :)
Mon soucis se pose avec l'utilisation des textures et des objets stockés dans un seul VBO et qui possèdent plusieurs textures.
Par exemple, je prends un cube comme modèle. Je crée le VBO qui va bien. Si mon cube n'a qu'une seule texture, aucun problème, il suffit de binder la texture avant d'appeler le draw du vbo.
Par contre si chaque face possède une texture différente, je ne vois pas comment faire ?
-
Je serais tenté de dire que tu dessines chaque face indépendamment, en activant à chaque fois l'unité de texture qui va bien.
Normalement tu ne devrais pas avoir de problème à faire ça avec les fonction de dessin (glDrawElements, glDrawArrays, ...)
-
question déjà posée apparemment :
http://www.developpez.net/forums/d72...i-texture-vbo/
donc 2 solutions en général :
-créer une texture contenant toutes les textures utilisées par ton maillage
=>la plus optimale puisque ne nécessite qu'un seul bind par objet et un seul draw Call;
-appliquer chaque texture aux vertices correspondants grâce glDrawRangeElements
http://www.opengl.org/sdk/docs/man4/...geElements.xml
=>nécessite autant de bind et de draw calls que de textures mais permet de réutiliser celles ci sur d'autres objets
-
ok pour la méga texture, mais alors nouvelle question :
dans la mesure où les textures sont limitées en taille (souvent 4096 * 4096), on atteint vite le maximum...
l'idée serait de générer la méga texture en fonction des besoins durant l'exécution ?
merci :)
-
Le mieux c'est de savoir à l'avance quelle tête elle aura, plutôt que de le faire au runtime.
-