Étant donné que ces sommets ont des propriétés différentes, ils ne sont pas les mêmes. Donc oui, certaines données peuvent être redondantes mais pas toutes. Normalement, la géométrie indexée peut être utilisée lorsque les vertices sont partagés entre les faces, mais dans ce cas elles ne sont pas vraiment partagées. OpenGL fournit une fonctionnalité de matrice de vertex qui pourrait être utilisée pour séparer des bits de données de sommet en morceaux indépendants. Disons que vous pouvez avoir des coordonnées dans un tableau consécutif, des couleurs dans un autre et des coordonnées de texture et dans la troisième. Les données de sommet n'ont pas besoin d'être entrelacées. Voir glVertexPointer
, glColorPointer
, glTexCoordPointer
etc
L'utilisation de tableaux de sommets que vous pourriez économiser de la mémoire en partageant certaines des données de sommet, mais qui nécessiteraient de faire de nombreux appels de tirage et ne serait pas la peine pour ce cas simple d'un cube. This article pourrait être très utile, vérifiez-le.
Connaissez-vous un cas où la géométrie indexée serait rentable? Si je comprends bien, dans une situation où vous avez un sommet partagé entre les faces, ce sommet doit être resoumis avec des données de texture différentes. – Kimi
J'ai modifié la réponse s'il vous plaît vérifier. La géométrie indexée fonctionne lorsque vous avez des sommets réellement partagés, comme ceux d'un patch ou d'un quad simple, où ils décrivent une surface. – detunized
@Al - Des périphériques tels que l'iPhone ont des GPU optimisés pour utiliser des bandes triangulaires indexées, et vous constatez des améliorations significatives des performances en utilisant des index si vous géométrez ces GPU. –