Toutes mes excuses, j'allais ajouter un commentaire à votre fil de questions, mais j'ai trouvé que je finissais par trop élaborer. Mon expérience de développement est dans une perspective DX 11, donc une partie de cela peut ne pas tenir dans OpenGL
La localité de mémoire des données joue certainement un rôle majeur. Mais il y a quelques autres éléments qui jouent dans cela, la largeur des données comme vous le savez. J'ai eu quelques GPU et mes performances ont été frappées par certains en fonction de certains points de basculement. C'est le cas par exemple, sur mon ancien AMD r290 si je me souviens bien, vous pouvez essentiellement passer jusqu'à 4 float4s au tampon vertex sans coût supplémentaire sur 1, mais une fois que j'ai posté> 4, il y a eu une baisse mesurable (dans le cadre taux). C'est purement hors de mon souvenir et c'est donc anecdotique au mieux. Mais il soutient que l'architecture GPU change tout le temps, et quelles techniques de niche qui vous donnent un avantage en termes de performances aujourd'hui, peut-être le fléau de vos performances demain. JE'
Cela dit, vous avez posé la question de l'ordre des sommets, et cela vous aidera certainement de façon marginale. Le gain de performances est lorsque vous combinez cela avec des tampons d'index qui permettent ensuite au matériel d'optimiser et de mettre en cache les sommets déjà calculés. Vous pouvez certainement obtenir encore plus de gains des bandes Triangle, etc., spécialement commandées selon vos pensées. La plupart des rendus de modèles que je fais sont des modèles optimisés basés sur des indices / sommets avec instanciation, j'utilise une petite quantité de recherches pour les effets de mouvement cyclique (branches d'arbre par exemple), dans ces cas, la branche entière de l'arbre recherche la même valeur. Ainsi, la mise en cache peut également être utilisée ici.
Tout ce que je peux dire en résumé de moi-même est:
- Essayez de ne pas trop penser à l'optimisation au début, pendant que vous développez encore votre jeu / application, essayez de ne pas l'optimiser prématurément. Si vous devez revenir et ajouter de nouvelles fonctionnalités, vous risquez de perdre tout l'effort. Vous avez peut-être mon habitude> <, j'adore essayer d'obtenir les meilleures performances et techniques
- Les architectures GPU sont variées et les forces de l'une peuvent refléter les faiblesses d'une autre. AMD et Nvidia sont connus pour obtenir des développeurs qu'ils optimisent les jeux à leur architecture, pour une raison, chacun a ses avantages / inconvénients. Prendre la voie du développement pourrait être le meilleur endroit, n'utilisez aucune fonctionnalité basée sur un fournisseur de matériel (avis ici). (ajouter à cela, certains formats emballés n'existent que dans AMD).
Ce ne sont que quelques réflexions et expériences que j'ai vécues. Il existe de nombreux livres sur lesquels vous devriez mettre la main sur ces sujets. Je n'ai pas vu beaucoup de gens prescrire ce que vous proposez, mais cela ne veut pas dire que c'est faux. Bonne chance.