J'ai beau tourner le probleme dans tout les sens je ne m'en sort pas et je ne vois aucune solution satisfaisante.
le fonctionnement des vertex buffers (ou VBO opengl) sont optimisés pour les géométries simples, voir simplistes, c'est à dire des géométrie de base avec UNE normale et UN uv par vertex... hors, c'est du jamais vue ! N'importe quel "vrai" objet 3d à un mappage uv complexe par face qui implique une multiplication de coordonnées de texture pour LE MEME vertex... De fait, dans un objet normalement mappé, on trouve beaucoup plus de coordonnées de texture que de vertex, donc pour rendre fidelement un tel objet, il est nécéssaire d'appliquer une logique "par face"... Or, la logique d'indexation des VB et VBO sont... par vertex... avec une normale et un uv par vertex... Dans un monde original et optimale, on aurait la possibilité de tracers nos géométrie à l'aide de 3 index différents, un pour les vertices, un pour les normales, et un pour les uv... En l'état, je n'ai trouvé qu'une solution : faire des VB brutalement avec des redondances de vertex pourvu que chaque face soit dessiné avec les normales et les uv correspondants, et du coup l'utilisation d'un index buffer est purement fortuit puisque ils s'agit de tout dessinner à la suite (1,2,3,4,5,6...) ... c'est un énorme gachi de mémoire bien entendu, alors j'aimerais savoir si il existe une autre solution...
Partager