Pit People Adesso online

Proviamo il nuovo gioco degli autori di Castle Crashers!

GDC 2012

Speciale Nuove Tecnologie Grafiche nVidia

In attesa di Kepler una panoramica su nuove tecniche di AntiAliasing, Illuminazione e PhysX

speciale Nuove Tecnologie Grafiche nVidia
Articolo a cura di
Andrea Schwendimann Andrea Schwendimann nasce smontando un 486DX e divorando qualsiasi videogame da allora in avanti. Non ha resistito a nessuna piattaforma, appassionandosi a qualsiasi genere, pur prediligendo gli FPS, gli action-adventure, gli RPG e l'hardware da gaming in ogni declinazione. Lo trovate su Facebook, su Steam e su Google Plus.

Vi ricordate del nostro recente articolo sulle tecniche di post-processing? Ebbene dopo questa GDC siamo pronti a espanderlo. Nvidia ha lavorato sodo negli ultimi due anni dal lancio delle Gtx 580 e la prima risposta alle nuove soluzioni AMD sono due innovazioni a livello software, dedicate alle piattaforme della casa verde. Stiamo parlando di una nuova tecnica di Anti Aliasing detta TXAA, di nuove istruzioni per calcolare l'illuminazione e delle nuove routine di Physx per la distruzione dinamica degli oggetti e la simulazione di peli e capelli. Sembrano dettagli o implementazioni poco influenti, ma siamo convinti che sarà anche da qui che partirà la prossima rivoluzione tecnologica nei videogames, data l'ottima resa grafica che i programmatori Nvidia ci hanno mostrato.

Nota per i lettori:Per poter comprendere appieno questo articolo, vi invitiamo a leggere attentamente i paragrafi dedicati all'HDR e all'Anti Aliasing della nostra guida sugli effetti di Post-Processing. Ci scusiamo in anticipo per l'assenza di immagini che chiarirebbero alcuni concetti meglio di mille parole. Tuttavia essendo tecnologie recentissime non abbiamo ancora accesso al loro effettivo utilizzo. Non appena ne saremo in grado offriremo esauriente immagini comparative.

Temporal Approximate Anti Aliasing

Nella nostra comparativa tra le più comuni forme di Anti Aliasing, avevamo incluso anche una tecnica di proprietà Nvidia non ancora finalizzata, detta SRAA. Tuttavia la prolifica casa di Santa Clara ci ha sorpreso, mostrandocene una del tutto nuova che combina in modo astuto il classico Multi Sampling (MSAA) e il Fast approXimate Anti Aliasing (FXAA). Facendo quattro chiacchere con il suo inventore, Timoty Lottes, ingegnere Nvidia, abbiamo potuto capire nel dettaglio cosa comporterà l'uso di una simile tecnica nei nostri videogame preferiti.
Che cosa esattamente hanno implementato delle due tecnologie? In breve tre componenti: le routine di ottimizzazione Multi Sampling 2x e 4x (per due diverse intensità di TXAA); una componente di ottimizzazione temporale delle scalettature, figlia del FXAA (ovvero applicata di istante in istante); e infine un'ottimizzazione specifica che agisce seguendo le esposizioni colore ad ampio spettro (HDR) del frame renderizzato. Precisiamo che il tutto è svolto direttamente a livello driver e non tramite software esterni (citiamo i famosi Injector), per un risultato molto più performante e preciso, esattamente come accade per l'MLAA delle schede AMD.

Applicando il TXAA, il filtro innanzitutto corregge il rendering dei bordi linearmente, come nel normale MSAA, applicando contemporaneamente la correzione temporanea sull'Alpha Channel -trasparenza di una texture rispetto allo sfondo-, ovvero l'effetto "sfocatura" proprio del FXAA. La combinazione risulta molto efficace perchè argina il problema del classico Multi Sampling che agiva sull'immagine senza considerare le trasparenze rispetto allo sfondo, smussando sì i bordi, ma al costo di una non perfetta geometria del poligono che risultava comunque in parte scalettato. Infine, guardando un'immagine 3D con uno sfondo molto luminoso e degli elementi più scuri in primo piano, si noteranno chiaramente delle scalettature sulle linee di contrasto sui bordi, nonostante le due implementazioni di cui sopra, dovute alle differenti esposizioni per una scena che fa uso ad esempio dell'HDR. Tornando indietro di un passaggio, applicando un normale filtro MSAA, si agisce solamente sul Low Dynamic Range, ovvero si alterano i pixel che scalettano il poligono seguendo una scala di esposizioni ristretta rispetto all'effettiva resa a schermo dello sfondo. Il risultato sono anche in questo caso certamente meno scalettature, ma anche la creazione di altri artefatti che non permettono una visualizzazione corretta del bordo stesso (artefatti simili ma di natura differente dal problema della trasparenza). Applicando quindi il nuovo filtro creato da Timoty, vedremo che i pixel sul bordo vengono alterati e sfumati in colorazione seguendo esattamente l'High Dynamic Range dello sfondo. Dunque il TXAA ha come ultima caratteristica quella di rispecchiare fedelmente l'HDR che tutti conosciamo nella sua correzione colore.
In ultima analisi le tre componenti del TXAA sembrano molto efficaci e in termini prestazionali non dovrebbero differire molto dall'uso tipico che si fa usualmente di un MSAA 2x o 4x (per i due valori corrispondenti di TXAA). Ovviamente sarà solo la prova su strada che ci permetterà di verificare queste affermazioni.

Illuminazione indiretta, Fracture e Fur Shading

Passando alle tecniche di illuminazione, è da un paio d'anni che anche nei videogame si parla di Global Illumination, una tecnica usata da tempo nei rendering 3D per calcolare non solo il comportamento della luce diretta in un ambiente, ma anche di quella rifratta, riflessa e diffusa da una superfice su quelle circostanti.

Rendering generico senza l'uso di Global Illumination

Rendering generico con Global Illumination (notare effetto di Bleeding dei colori)


Il calcolo in tempo reale necessario per ottenere un risultato soddisfacente è molto esoso in termini di risorse e per questo si cercano algoritmi come il SSAO per ottimizzare il computo. Nvidia ha presentato un suo algoritmo proprietario che utilizza la tecnica del ray tracing conico (quattro coni per ogni voxel -pixel cubico- da cui partono dei fasci che proiettano la luce sui materiali che incontrano) che ottimizza il calcolo della luce diffusa per ogni texture e relative normal map. Il risultato mostrato nella tech demo ci è parso ottimo, con un effetto di bleeding dei colori molto convincente. Per chi non lo sapesse è detta "bleeding" la propagazione dei colori della luce indiretta, caratteristica finora presente nei soli Cryengine 3 e Frostbite 2 ma che, grazie a questa implementazione, dovrebbe essere più accessibile a tutti i programmatori direttamente dalle schede Nvidia.

Non poteva mancare un corposo aggiornamento al motore che tutti abbiamo imparato ad apprezzare in titoli come Batman Arkham City e Mafia 2. Physx è l'engine proprietario di Nvidia per il computo della fisica nei videogame, come fluidodinamica, fisica dei tessuti e dei corpi rigidi. Lavorando insieme ad Epic, Nvidia ha sviluppato due tecniche molto interessanti. La prima, che chiameremo Fracture anche se non esiste un vero e proprio nome ufficiale, si occupa della distruzione dinamica degli oggetti in tempo reale. La differenza più grande rispetto alla tecnologia implementata fino ad oggi, sta nel poter applicare in modo prestazionalmente poco esoso gli algoritmi di distruzione a tutti i corpi rigidi di una scena in 3D. Ovviamente i programmatori potranno sempre selezionare quali verranno distrutti e quali no, ma il numero totale di frammenti visualizzabili è stato aumentato di molto, grazie ad un uso intelligente della memoria. Dopo un certo fissato lasso di tempo in cui non interagiremo più con i detriti di un muro che abbiamo fatto crollare, il cumulo di macerie verrà reso inerte, allegerendo il computo della scena in generale, per poi "riattivarsi" una volta che ci interagiremo nuovamente. Per l'occasione ci è stato mostrato un livello creato appositamente con l'Unreal Development Kit in cui, armati di lanciamissili, potevamo fare a pezzetti una stanza di un museo. Il bello è che una volta a terra ciascun detrito poteva essere continuamente preso di mira e spezzato ulteriormente senza evidenti limiti di fratture. Cosa potrebbe essere uno sparatutto con una feature simile, grazie alla quale aprire delle voragini ovunque sul soffitto per seppellire i malcapitati sottostanti? La promessa mancata del Frostbite 2?

Infine un'ultima demo è apparsa a schermo, con un enorme ogre peloso animato ciclicamente in un ambiente spoglio. Il Fur Shading è una tecnica di simulazione e resa 3D di capelli e pelo già usata da molti anni nei videogame, ma ancora una volta Nvidia ha voluto migliorare incredibilmente l'effetto, aggiornando l'algoritmo relativo nel suo Physx engine. Ora ogni capello è renderizzato singolarmente sulla superficie interessata ed è dotato di volume, facendo scomparire del tutto quell'effetto "piatto" tipico di molti videogame. Oltre a questo ogni capello è anche animato verosimilmente per interagire con gli eventi esterni e i movimenti del personaggio. Il trucco per alleggerire il calcolo fisico di migliaia e migliaia di elementi -in questo caso i peli- è quello di selezionare un certo numero di "peli guida" che, muovendosi, permettono di semplificare la direzione e il movimento dei peli circostanti, che dunque in realtà seguono le relative guide e non direttamente gli interventi esterni del motore di gioco.
Durante la demo, al passaggio del mouse sull'ogre simulavamo la direzione del vento. Sembra quasi un'inezia tutto questo, ma nonostante gli escamotage è incredibile la resa finale, che innalza il realismo della scena e l'immersione del giocatore. Ovviamente ci chiediamo come questi dettagli così raffinati possano rientrare in un videogame vero e proprio, dati i compromessi che necessariamente si devono fare per venire incontro al maggior numero di configurazioni hardware possibili. Tuttavia non possiamo che elogiare gli sforzi di Nvidia, in attesa di scoprire come questo nuovo Fur Shading venga implementato. In un Conker 3 ad esempio, con i pelosissimi roditori che si spettinano al passaggio di una bazookata sopra la spalla.

NVIDIA Sono tantissime le novità in ambito software e hardware che Nvidia sta proponendo in questo caldo mese di Marzo. Le due nuove tecniche di post-processing ci hanno piacevolmente impressionato -soprattutto quelle per l'illuminazione indiretta-, così come l'incredibile efficacia delle due nuove routine Physx. Se da una parte il realismo è sempre più vicino, dobbiamo ammettere che per ora non sappiamo quanto in termini di prestazioni tutto questo peserà sulle nostre macchine. Allo stand Nvidia sullo showfloor della GDC il tutto girava su configurazioni decisamente fuori dalla portata dell'utente medio (basti pensare alle due Gtx 580 in SLI), ma sarà con Kepler che finalmente vedremo un'accessibilità al pubblico di tutte queste tecniche. Posto ovviamente il supporto degli sviluppatori, su cui Nvidia sembra puntare sempre di più, e posta anche la ricezione delle schede sul mercato, i tempi perchè tutto questo diventi uno standard (se mai lo diventerà) saranno decisamente lunghi. Nel nostro piccolo possiamo dirvi subito che le tecniche mostrate sono davvero efficaci e potrebbero rinfrescare i nostri amati videogiochi anche in termini di gameplay (la famosa piastrella che cade in testa al nemico la staccheremo noi con precisione millimetrica non scriptata). La palma per miglior implementazione tecnica mostrata vasenz'ombra di dubbio al TXAA, vera e propria conquista in termini di bilanciamento tra prestazioni ed efficacia della resa visiva, nonostante i dubbi espressi e le prove da effettuare sulle nostre macchine. Kepler è alle porte, ma solo tra molti mesi capiremo quanto veramente tutto questo potrà scuotere l'industria videoludica. Intanto attendiamo che queste nuove tecniche siano implementate al più presto.