Tessellation

A sei mesi dall'uscita delle schede video DirectX 10 8800 GTX e GTS di Nvidia, ora tocca ad AMD con la sua Radeon HD 2900 XT. Riuscirà AMD/ATI a guadagnarsi il trono delle prestazioni?

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Tessellation

La tecnica Tesselation, applicata in tempo reale dalle HD 2000, permette di generare modelli tridimensionali complessi partendo da modelli primitivi. Si tratta di una tecnica molto utilizzata nel rendering cinematografico.

Clicca per l'ingrandimento. Tessellation: da una primitiva a un modello complesso tramite algoritmi ricorsivi.

Un tessellatore prende un poligono e lo suddivide in molti triangoli per amplificare il dettaglio dell'oggetto, applicando ricorsivamente una regola di suddivisione. Questa tecnica serve per amplificare i dati di animazioni, i target di morph e i modelli di deformazione. Il progettista grafico può creare modelli semplificati, usando il minimo possibile di risorse per passarli alla scheda video che impreziosirà i dettagli in modo autonomo.

Con la tecnologia Tessellation si potranno introdurre nei giochi dei personaggi ultra dettagliati e renderizzati in tempo reale che ricorderanno molto quelli dei film di animazione. Tutto è gestito via hardware. La topologia viene generata a partire da una primitiva o da una patch, dopodichè si effettua una valutazione parallela dei nuovi vertici e la generazione di questi ultimi in tempi molto rapidi.

Da questa immagine in 2D con dati altimetrici si ricava quanto vedete più sotto...

... et voilà, la tessellation è servita!

Uno degli esempi mostrati da AMD nella conferenza di Tunisi riguardava una zona montana definita inizialmente da una rappresentazione bidimensionale. Applicata la tessellation in tempo reale la scena si è trasformata in una versione 3D decisamente fotorealistica. Abbiamo potuto anche verificare in diretta come la quantità di tessellation si possa gestire dinamicamente in tempo reale.

Nel demo di AMD il panorama montano da 5 milioni di triangoli al secondo scorreva a circa 190 frame al secondo. Mancavano tuttavia alberi, corsi d'acqua, laghi, cielo e sole. Questa tecnica non richiede un'ulteriore funzione nelle API, in quanto è presente nelle DirectX 10. Quindi AMD è stata molto intelligente a inserire dell'hardware dedicato, perché prima o poi la Tessellation ricoprirà un ruolo anche nello sviluppo dei giochi 3D.

Bassa risoluzione con Tessellation

Alta risoluzione, No Tessellation

Numero dei poligoni del modello di partenza (pre-tessellation)

840 triangoli

1.280.038 triangoli

Costo di rendering del modello originario

1210 fps (0.83 ms)

Numero dei poligoni del modello effettivamente renderizzato

1.008.038 triangoli

1.280.038 triangoli

Capacità buffer VRAM Vertex

70 KB

31 MB

Capacità buffer VRAM Index

23 KB

14 MB

Tempo Rendering

821.41 fps (1.22 ms)

301 fps (3.32 ms)