Les sommets sont-ils retraités par poly pour les maillages indexés?

8

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?

russ
la source

Réponses:

5

L'expression clé que vous recherchez peut-être est "Cache de post-transformation" .

Ceci est généralement efficace en raison de la réutilisation naturelle des sommets, mais réorganiser votre maillage, par exemple avec la méthode de Hoppe (note: la page répertorie également des travaux plus récents) ou de Forsyth peut améliorer les choses davantage.

Simon F
la source
1
Ouais, c'est celui-là. Merci. :-) J'ai fait des Marching Cubes indexés sur des volumes assez importants et j'étais curieux de savoir comment ils étaient rendus, car la localisation des sommets est assez mauvaise entre les tranches. Il est logique de mettre en cache les sommets quelque part (je suppose que dans le cache L1 / 2 standard?). Mes maillages sont probablement suffisamment en panne pour retraiter un grand nombre de sommets, je vais donc examiner ces algorithmes.
russ
4

Cela dépend de la distance à laquelle les sommets sont réutilisés.

Par exemple, le carré 0, 1, 2, 2, 1, 3aura un intervalle suffisamment court pour que les sommets 1et 2soient 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.

monstre à cliquet
la source