Cos'è la tassellatura in computer grafica


16

Negli ultimi giochi ho notato qualcosa chiamato Tessellation, L'attivazione della cosa distrugge il mio frame rate.

Ho notato che quando acceso sembra Anti-aliasing.

Qualcuno può darmi ulteriori informazioni su cosa fa esattamente la GPU.


2
Oh caro, 2 risposte e nessun grafico per i computer grafici al meglio.
joojaa,

Risposte:


25

La tesselazione è una tecnica che consente di generare primitive (triangoli, linee, punti e simili) sulla scheda grafica. In particolare, consente di suddividere ripetutamente la geometria corrente in una mesh più fine.

Ciò consente di caricare una mesh relativamente grossolana sulla scheda grafica, generare dinamicamente più vertici e triangoli e quindi disporre di una mesh sullo schermo che appare molto più liscia.

Esempio di tassellatura

Il più delle volte questa tassellatura viene ripetuta in ogni singolo fotogramma e questo potrebbe essere il motivo per cui la frequenza dei fotogrammi diminuisce dopo averlo abilitato.

La tesselazione viene eseguita in più fasi e DOPO lo shader di vertice.

fasi

I termini per ogni fase variano in base all'API. In DirectX, si tratta di Hull Shader, Hardware Tessellation e Domain Shader. In OpenGL, sono chiamati Shader di controllo della tassellatura, Generazione primitiva di tassellatura e Shader di valutazione della tassellatura.

Il primo e l'ultimo stadio sono programmabili, l'effettiva tassellatura viene eseguita dall'hardware in uno stadio funzionale fisso.

Nello shader Controllo tesselazione si imposta il tipo e il numero di suddivisioni.

Quindi il tassellatore hardware divide la geometria in base al Control Shader.

Infine, viene chiamato lo Shader di valutazione della tassellatura per ciascun vertice appena generato. In questo shader, imposti il ​​tipo di primitiva che vuoi generare e come sono distanziati i vertici e molte altre cose. Questo shader può anche essere utilizzato per eseguire tutti i tipi di calcoli per vertice proprio come uno shader di vertici. È garantito che venga chiamato almeno una volta per ciascun vertice generato.

Se vuoi fare qualsiasi altro lavoro sulle primitive, puoi aggiungere uno shader Geometria.


1
@Nicol Grazie. Ho modificato la risposta di conseguenza.
Dragonseel,

7

Attiva 3 fasi nella pipeline.

Il primo è lo shader di controllo della tassellatura (shader dello scafo in D3D) che osserva un insieme di vertici e quindi mostra come dovrebbe essere diviso in triangoli separati.

Il secondo è uno stadio a funzione fissa che genererà i triangoli richiesti.

Il terzo stadio è lo shader di valutazione di tassellatura (domain shader in D3D) che viene eseguito per vertice generato e lo posizionerà nella posizione corretta in base alle coordinate baricentriche del vertice generato.

Viene utilizzato per il livello di dettaglio per generare più triangoli quando la mesh è più vicina alla telecamera.

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.