GeForce

Tassellatura DirectX 11

 
 

Tassellatura DirectX 11 — che cos'è e perché è importante

Le DirectX 11 sono uno degli argomenti più "caldi" del momento, quindi è più che probabile che abbiate già sentito parlare parecchio di una delle più importanti novità di questa nuova versione delle API Microsoft, la tassellatura. La tassellatura non è un concetto particolarmente astruso: si tratta semplicemente di prendere un poligono e di sminuzzarlo in componenti di dimensioni minori. Ma dove sta il grande vantaggio? Per quale motivo questa operazione dovrebbe rivoluzionare i videogiochi? In questo articolo daremo un'occhiata da vicino ai motivi per cui la tassellatura avrà un effetto rivoluzionario sulla grafica 3D dei PC e anche al modo in cui le GPU NVIDIA® GeForce® GTX serie 400 offrono prestazioni di tassellatura davvero eccezionali.

Nella sua forma più elementare, la tassellatura non è che un metodo per suddividere i poligoni in componenti di dimensioni minori. Per esempio, se si prende un quadrato e lo si divide lungo la diagonale, si “tassella” il quadrato in due triangoli. Di per sé, la tassellatura fa ben poco per migliorare il realismo. Per esempio, in un gioco non è particolarmente importante se un quadrato viene renderizzato come due triangoli o come duemila triangoli. La tassellatura migliora il realismo solo se i nuovi triangoli vengono utilizzati per contenere o raffigurare nuove informazioni.

Triangle Mapping Displacement Mapping
Quando una mappa spostamenti (a sinistra) viene applicata a una superficie piana, la superficie risultante (a destra) riproduce le informazioni relative alle altezze codificate nella mappa.

Il metodo più semplice e più popolare per utilizzare i nuovi triangoli è l'uso di una tecnica denominata displacement mapping o mappatura spostamenti. Una mappa spostamenti è una texture che archivia informazioni sulle altezze. Se viene applicata a una superficie, permette di spostare i vertici in alto o in basso sulla superficie sulla base delle informazioni relative alle loro altezze. Per esempio, l'artista grafico può prendere una lastra di marmo e spostarne i vertici sino a formare un incisione. Un'altra tecnica molto usata consiste nell'applicare le mappe spostamenti alla rappresentazione del terreno per ricavare crateri, canyon e picchi montani.

Come la tassellatura, la mappatura spostamenti è stata scoperta ormai da parecchio, ma sino a pochissimo tempo fa non ha mai davvero preso piede. La ragione della scarsa fortuna di questa tecnica consiste nel fatto che per rendere efficace la mappatura spostamenti, la superficie deve contenere un numero molto elevato di vertici. Per riprendere l'esempio dell'incisione sul marmo, un blocco di marmo composto da soli otto vertici rende impossibile riprodurre un disegno complesso come quello di un drago. Un bassorilievo dettagliato può essere realizzato solo se il reticolo di base che deve accoglierlo contiene un numero di vertici sufficiente a consentire la raffigurazione della nuova forma. In poche parole: la mappatura spostamenti e la tassellatura sono indissolubilmente legate fra loro.

Grazie alle DirectX 11, tassellatura e mappatura spostamenti sono finalmente e sinergicamente accessibili e gli sviluppatori hanno già iniziato ad accorgersene. Giochi molto apprezzati come Alien vs. Predator e Metro 2033 usano la tassellatura per produrre modelli dall'aspetto davvero levigato e morbido, mentre gli sviluppatori di Valve e id Software hanno applicato in modo davvero promettente queste tecniche ai personaggi dei giochi esistenti.

Coarse Model
Un modello grezzo (a sinistra) viene trattato con la tassellatura per produrre un modello liscio (al centro). L'applicazione di una mappa spostamenti (a destra) conferisce al personaggio il realismo tipico delle produzioni cinematografiche. © Kenneth Scott, id Software 2008

Dal momento che la pipeline della tassellatura per DirectX 11 è programmabile, questa può essere usata per risolvere un gran numero di problemi grafici. Diamo un'occhiata a quattro esempi.

Mappatura protuberanze perfetta

Model Comparision

Al suo livello più elementare la mappatura spostamento può essere utilizzata come sostituzione istantanea delle tecniche esistenti di mappatura protuberanze. Le attuali tecniche quali la mappatura normale creano l'illusione di superfici accidentate grazie a un perfezionamento del pixel shading. Tutte queste tecniche funzionano solo in casi particolari e sono solo parzialmente convincenti anche quando funzionano. Si prenda il caso della mappatura occlusioni in parallasse, una forma molto avanzata di mappatura protuberanze. Sebbene produca l'illusione di una geometria in sovrapposizione, funziona soltanto sulle superfici piane e solo all'interno degli oggetti (vedere l'immagine dell'esempio qui sopra). Una vera mappatura spostamenti non evidenzia nessuno di questi problemi e produce risultati accurati da tutti gli angoli di visuale.

Personaggi più levigati e morbidi

Smoothing Character
L'algoritmo dei triangoli PN permette di levigare e ammorbidire automaticamente i personaggi senza ricorrere all'opera dell'artista. Questo migliora il realismo della geometria e dell'illuminazione.

Un altro sviluppo tecnologico reso più accessibile dalla tassellatura sono gli algoritmi di affinamento. Un algoritmo di affinamento, con l'aiuto della tassellatura, consente di rendere molto più levigato e morbido un modello grezzo. Un esempio molto diffuso è rappresentato dai triangoli PN (noti anche come patch N). L'algoritmo dai triangoli PN converte i modelli a bassa risoluzione in superfici curve che vengono poi ridisegnate come reticolo di triangoli a tassellatura fine. Molti degli artefatti che attualmente diamo per ineliminabili dai giochi, come ad esempio le giunture squadrate dei personaggi, le ruote delle auto di aspetto poligonale e i tratti del viso poco realistici, possono essere eliminati con l'aiuto di questi algoritmi. Per esempio, i triangoli PN vengono usati in Stalker: Call of Pripyat per produrre personaggi di aspetto più morbido e organico.

Livello di dettaglio senza soluzione di continuità

Nei giochi con grandi ambienti aperti avete probabilmente notato come gli oggetti più distanti tendano spesso a comparire e scomparire. Questo è dovuto al motore di gioco che passa a diversi livelli di dettaglio, o LOD, per mantenere sotto controllo il carico di lavoro dovuto all'elaborazione geometrica. Sino a questo momento, non è mai stato possibile adottare alcun metodo semplice per variare il livello di dettaglio in modo continuo, dato che questo avrebbe richiesto la conservazione di un numero sin troppo elevato di versioni di uno stesso modello di ambiente. La tassellatura dinamica risolve questo problema variando il livello di dettaglio in modo istantaneo. Per esempio, quando un edificio distante viene visualizzato per la prima volta, questo può essere renderizzato con soli dieci triangoli. Quando ci si avvicina, le sue caratteristiche prominenti emergono e si utilizzano altri triangoli per descrivere dettagli quali le finestre e il tetto. Quando finalmente si arriva alla sua porta, un migliaio di triangoli vengono destinati al rendering della sola maniglia in ottone antico, nella quale ciascuna scanalatura viene scavata meticolosamente grazie alla mappatura spostamenti. Grazie alla tassellatura dinamica il problema di comparsa/scomparsa degli oggetti viene eliminato per sempre e la scalabilità degli può arrivare sino a livelli di dettaglio geometrico pressoché infiniti.

Illustrazioni scalabili

La tassellatura migliora nettamente l'efficienza della pipeline di creazione del contenuto degli sviluppatori. Motivando il suo interesse nei confronti della tassellatura, Jason Mitchell di Valve ha detto: “Siamo molto interessati alla possibilità di creare risorse che scalabili verso l'alto e il basso. Insomma vogliamo creare un modello una volta soltanto per poi essere in grado di scalarlo verso l'alto sino a una qualità di tipo cinematografico... Ma vogliamo anche essere in grado di scalare verso il basso in modo naturale la qualità di un asset per soddisfare le esigenze di rendering in tempo reale su uno specifico sistema.” Questa capacità di creare un modello una sola volta per poi usarlo su varie piattaforme permetterà una netta riduzione dei tempi di sviluppo e, per il giocatore su PC, una qualità dell'immagine sempre regolata sul massimo gestibile dalla propria GPU.

Le GPU GeForce GTX 400 e la tassellatura

Le GPU di concezione tradizionale si avvalgono di un solo motore geometrico per eseguire la tassellatura. Questo approccio è analogo a quanto succedeva nelle prime GPU che utilizzavano una singola pipeline pixel per eseguire il pixel shading. Vedendo come le pipeline pixel sono passate dall'unità singola a numerose unità in parallelo e quanto questo abbia migliorato il realismo 3D, abbiamo progettato la nostra architettura di tassellatura in modo che fosse in grado di eseguire l'elaborazione in parallelo sin dall'inizio.

Le GPU GeForce GTX 400 contengono sino a quindici unità di tassellatura, ciascuna con hardware dedicato per il vertex fetch, la tassellatura e le trasformazioni di coordinate. Queste unità operano con quattro motori raster paralleli che trasformano i triangoli appena tassellati in un flusso omogeneo di pixel da sottoporre a shading. Il risultato è una vera e propria rivoluzione nelle prestazioni di tassellatura — oltre 1,6 miliardi di triangoli al secondo di prestazioni sostenute. Secondo i dati raccolti dal sito Web indipendente Bjorn3D la GeForce GTX 480 è sino a 7,8 volte più rapida rispetto al prodotto più performante della concorrenza.

Conclusione

Dopo molti anni di prove ed errori, la tassellatura è finalmente arrivata sul PC. Giochi sbalorditivi quali Metro 2033 mettono già in bella evidenza le straordinarie potenzialità della tassellatura. Col tempo la tassellatura diventerà cruciale e indispensabile come il pixel shading. Realizzandone l'importanza, NVIDIA ha deciso di creare un'architettura di tassellatura in parallelo sin dal primo istante. Il risultato è la famiglia di GPU GeForce GTX 400 — un gruppo di prodotti davvero rivoluzionari per quanto riguarda il realismo delle geometrie e le prestazioni di tassellatura.



 
 
 
 
FacebookTwitterGoogle+LinkedInPinterest