I vertici vengono rielaborati per poli per le mesh indicizzate?


8

Ho scavato un po 'in quello che succede effettivamente a livello hardware sulla GPU e ho trovato la vita di un triangolo di NVidia che spiega abbastanza bene la pipeline, almeno per le scatole verdi. Una cosa su cui non ero chiaro è cosa succede con le mesh indicizzate, quando lo stesso vertice viene utilizzato per un gruppo di triangoli diversi. Dato che in genere i dati non sono persistenti per più del necessario in un processore di flusso, immagino che il vertice venga semplicemente distrutto dopo essere stato rasterizzato, quindi recuperato ed eseguito nuovamente attraverso lo shader di vertice ogni volta che appare in un nuovo triangolo. Qualcuno può confermare questo? Inoltre, cosa succede nelle modalità linea-striscia o triangolo? La GPU persiste da qualche parte i dati del vertice trasformato fino a quando le 2 o 3 primitive rilevanti non sono state rasterizzate in questi casi?

Risposte:


5

L'espressione chiave che potresti cercare è "Post Transform Cache" .

Questo di solito è efficace a causa del riutilizzo del vertice naturale, ma riordina la tua mesh, ad esempio con il metodo Hoppe (nota: la pagina elenca anche alcuni lavori più recenti) o Forsyth può migliorare ulteriormente le cose.


1
Sì, questo è quello. Grazie. :-) Ho fatto dei Marching Cubes indicizzati su volumi piuttosto grandi ed ero curioso di sapere come venivano resi, dato che la localizzazione dei vertici è piuttosto negativa tra le sezioni. Ha senso memorizzare nella cache i vertici da qualche parte (immagino solo nella cache L1 / 2 standard?). Le mie maglie sono probabilmente abbastanza fuori servizio per rielaborare molti vertici, quindi esaminerò quegli algoritmi.
russ,

4

Dipende da quanto sono distanti i vertici.

Ad esempio, il quadrato 0, 1, 2, 2, 1, 3avrà un intervallo abbastanza breve da riutilizzare i vertici 1e 2. Ma se ci sono cento vertici tra i riutilizzi, è più probabile che non ci siano riutilizzi.

Ma quando sono molto più distanti, il vertice cadrà dalla cache e dovrà essere rielaborato dallo shader di vertice.

Ecco perché alcuni software 3D hanno un modo per migliorare la localizzazione dei vertici per le mesh indicizzate riordinando i vertici.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.