Trasparenza Texture: Nvidia TAAA e AMD Adaptive Anti-Aliasing

Analisi del filtro anti-aliasing, la sua implementazione e le impostazioni dei driver.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Trasparenza Texture: Nvidia TAAA e AMD Adaptive Anti-Aliasing

Come potete immaginare quindi il metodo MSAA offre un buon compromesso tra prestazioni e qualità delle immagini. C'è però un problema che questo metodo non risolve: la trasparenza delle texture.

Quando si tratta di giochi PC la maggior parte degli oggetti che vedete e con cui interagite sono fatti di mesh (insiemi di diversi elementi) a tre dimensioni. Queste mesh sono composte di poligoni a tre lati che chiamiamo triangoli.

Più un oggetto ha curve e dettagli, e maggiore sarà il numero di poligoni necessari per riprodurlo. Quando giochiamo ogni triangolo da riprodurre aggiunge lavoro grafico: il sistema deve elaborare come inserire ogni elemento nella texture, come riflette la luce e persino come proietta un'ombra.

Per mantenere il frame rate elevato gli sviluppatori di videogiochi provano a mantenere il numero di poligoni per frame entro un certo limite. L'idea è stare sotto la soglia, fornendo visuali abbastanza buone senza rinunciare alle prestazioni. AMD e Nvidia provano ad aiutare gli sviluppatori ad alzare l'asticella usando la tessellation, di cui parleremo in un altro articolo. Ne abbiamo parlato anche in passato, nell'articolo del 2008 DirectX Vs OpenGL, fine dei giochi?

I problemi crescono in scene dove ci sono un grande numero di piccoli oggetti dettagliati che richiederebbero mesh incredibilmente complesse. Immaginate il numero di poligoni richiesto per rappresentare le innumerevoli foglie in una foresta, o ancora la complessità del filo spinato o dei fili d'erba. Persino con la potenza attuale dei core grafici, queste operazioni potrebbero stendere un PC. La soluzione è usare la trasparenza delle texture.

Una texture trasparente simula un oggetto tridimensionale molto dettagliato usando un'immagine bidimensionale, accompagnata da una maschera trasparente. Prendiamo come esempio la rete metallica delle immagini in questa pagina, un oggetto presente in molti giochi FPS moderni. La texture nella prima immagine mostra la rete vera e propria insieme alla maschera trasparente (la zona a scacchi bianchi e grigi); nella seconda potete vedere la geometria degli oggetti, e nella terza il risultato finale.

Il supersampling applicherà l'anti-aliasing alle texture trasparenti, ma non senza il grande impatto sulle prestazioni menzionato in precedenza. Quello di cui abbiamo bisogno è un metodo ad alte prestazioni per applicare l'anti-aliasing a queste texture.

Con le schede GeForce della serie 7 Nvidia ha presentato una funzione chiamata transparency adaptive anti-aliasing, abbreviata come TAAA. Nvidia ha due versioni del TAAA, una che usa il metodo multisampling (TrMSAA) e una quello supersampling (TrSSAA).

Ricordate che l'MSAA è applicato solamente su pixel che contengono il bordo in un poligono. Il TAAA fa sì che tali pixel vengano contrassegnati. A questo punto l'utente può scegliere – tramite le impostazioni dei driver – se applicare l'anti-aliasing alla texture trasparente allo stesso livello in cui l'MSAA è applicato sul resto della scena, o fare il supersample della texture trasparente con due, quattro o otto campioni.

Dovremmo inoltre menzionare le limitazioni del TAAA di Nvidia. In teoria il TrSSAA dovrebbe funzionare in quasi tutte le situazioni, ma i nostri risultati mostrano che nella maggior parte dei casi funziona solo in DirectX 10 e 11. Il TrMSAA d'altra parte è limitato alle DirectX 9 e abbiamo visto che, in pratica, raramente funziona.

La controparte Radeon al TAAA è chiamata adaptive anti-aliasing, ed è stata presentata poco dopo le schede GeForce 7 e Radeon X1000. Lavora in modo simile, eccetto per il fatto che l'implementazione AMD è stata limitata al supersampling, con un numero di campioni legati al livello di anti-aliasing della scena. Come il TrMSAA di Nvidia, l'adaptive anti-aliasing di AMD lavora solo con i motori di gioco DirectX 9 e spesso nella pratica non funziona. AMD ci ha fatto sapere che questa funzione può essere usata nelle applicazioni DirectX 10 e 11 se lo sviluppatore le supporta in modo specifico. Tra i giochi che se ne avvantaggiano troviamo S.T.A.L.K.E.R.: Clear Sky, S.T.A.L.K.E.R.: Call of Pripyat e Metro 2033. Quest'ultimo però non ha funzionato, nei nostri test.