J'ai creusé un peu dans ce qui se passe réellement au niveau matériel sur le GPU, et j'ai trouvé la vie d'un triangle de NVidia qui explique assez bien le pipeline, au moins pour les boîtes vertes. Une chose sur laquelle je ne suis pas clair est ce qui se passe avec les maillages indexés, lorsque le même sommet est utilisé pour un tas de triangles différents. Étant donné que les données ne sont généralement pas conservées plus longtemps que nécessaire dans un processeur de flux, je suppose que le sommet est simplement détruit après avoir été tramé, puis récupéré et exécuté à nouveau dans le vertex shader chaque fois qu'il apparaît dans un nouveau triangle. Quelqu'un peut-il confirmer cela? De plus, que se passe-t-il en mode ligne-bande ou triangle-bande? Le GPU conserve-t-il les données de sommet transformées quelque part jusqu'à ce que les 2 ou 3 primitives pertinentes aient été tramées dans ces cas?
8
Cela dépend de la distance à laquelle les sommets sont réutilisés.
Par exemple, le carré
0, 1, 2, 2, 1, 3
aura un intervalle suffisamment court pour que les sommets1
et2
soient réutilisés. Mais s'il y a une centaine de sommets entre les réutilisations, il est plus probable qu'il n'y aura pas de réutilisation.Mais lorsqu'ils sont beaucoup plus éloignés, le sommet tombera de la cache et devra être retraité par le vertex shader.
C'est pourquoi certains logiciels 3D ont un moyen d'améliorer la localisation des sommets pour les maillages indexés en réorganisant les sommets.
la source