Metro Last Light: i dettagli tecnici del motore grafico
In sede di recensione non abbiamo avuto modo di esaminare con calma i dettagli tecnici del motore grafico di Metro Last Light, che però presenta diversi spunti di interesse, collocandosi come una delle migliori soluzioni nel panorama attuale. Vediamo le caratteristiche del 4A Engine in termini di PhysX, tassellatura, anti-aliasing, post-processing e molto altro.
di Rosario Grasso pubblicato il 24 Maggio 2013 nel canale VideogamesOmbre, Skin Shading, Soft Particles, Volumetric Texturing
Di Motion Blur e Parallax Mapping invece c'è meno da dire. Il primo è abilitabile in tre livelli differenti di intensità, con il livello molto alto consentito solo in presenza di hardware DX 10 o DX 11. Il Motion Blur più intenso applica un effetto di sfocamento in caso di immagini mosse rapidamente, il che consente, come ben noto, di coprire anche le incertezze in termini di frame rate. Del Parallax Occlusion Mapping abbiamo, invece, parlato prima: si tratta di una tecnica per il miglioramento del dettaglio visivo, più avanzata rispetto al bump mapping ma inferiore se paragonata all'effetto di tassellatura.
Shadow Filtering, poi, ammorbidisce e leviga i bordi delle ombre, elimina gli artefatti visivi e le altre esitazioni nelle ombreggiature. Per creare ombre fedeli in tempo reale sono necessarie delle shadow map ad alta risoluzione. Se la risoluzione delle ombre è particolarmente alta, infatti, si potranno vedere dei dettagli che altrimenti verrebbero trascurati. Nel caso di una tazza, ad esempio, una shadown map in bassa risoluzione comporterà un'ombra risultante stilizzata della tazza, che ad esempio potrebbe risultare carente del dettaglio sul manico. Ovviamente tuttò ciò è ancora più importante nel caso di ombreggiature di esseri umani: per esempio con shadow map piccole potrebbero risultare assenti nell'ombra finale dettagli come il naso o le mani.
In Last Light le ombre possono essere settate secondo quattro diversi livelli qualitativi. Con il dettaglio "basso" abbiamo shadow map alla risoluzione 2,35 megapixel (Mpx), mentre a medio tale risoluzione risulta di 4.19 Mpx, ad "alto" di 6.55 Mpx e a "molto alto" di 9.43 Mpx. Indipendentemente dalla risoluzione dell'ombra, vengono calcolati successivamente altri effetti visivi come penombra e penombra variabile, che servono ad aggiungere profondità, occlusione ambientale e altre variabili alle ombre.
Similmente a Light-Material Interaction, che come abbiamo visto gestisce l'interazione tra la luce e i materiali non organici, abbiamo poi Skin Shading, che determina come interagisce la luce con la pelle degli esseri umani. Questa tecnica è progettata per impedire il verificarsi il fenomeno per cui la luce rimbalza su un personaggio come se questo fosse fatto di un materiale uniforme, come la plastica. Sfrutta il cosiddetto "Subsurface Scattering", che calcola la forza e la direzione dei raggi luminosi nel momento in cui colpiscono la pelle di un personaggio e penetrano all'interno di essa. Questo processo finisce per disperdere i raggi, permettendo alla luce di uscire da più punti nel caso di illuminazione a elevata intensità. Si pensi all'effetto che si verifica quando si pone la mano a ridosso di un'intensa fonte di luce: i raggi filtreranno attraverso la mano e faranno luce anche al di là di essa.
Abbiamo poi la tecnica indicata come Soft Particles. Gli effetti particellari molto spesso sono composti da sprite che interagiscono dinamicamente con la geometria poligonale del mondo di gioco. Questa soluzione si rivela adeguata nel caso di ampi scenari, ma negli spazi chiusi è molto meno efficace. Il contatto tra spite e geometria poligonale, infatti, dà una sensazione di inadeguatezza agli occhi del giocatore, che percepisce una differenza in termini di fedeltà dell'immagine tra gli uni e gli altri.
Per risolvere questo problema viene applicata proprio la tecnica Soft Particles, che permette alle particelle di apparire correttamente a prescindere dall'angolazione dalla quale vengono viste, attraverso un ammorbidimento dei bordi delle particelle stesse. Questa tecnica offre anche un beneficio secondario agli sviluppatori, perché consente loro di specificare opacità e trasparenza per ogni pixel di cui sono formate le particelle.
Ma Soft Particles implica l'impego degli ormai superati sprite, mentre una tecnica più moderna e flessibile, Volumetric Texturing, ha permesso a 4A Games di rendere ancora più realistici gli effetti particellari. Volumetric Texturing si basa su texture tridimensionali, a differenza degli sprite bidimensionali di Soft Particles, e serve per generare fumo, nebbia, fuoco e gli altri effetti che devono mantenersi su un alto livello di dettaglio anche se osservati da vicino. Ma se i calcoli che stanno alla base del Volumetric Texturing possono essere assegnato a uno dei thread della CPU, le particelle più distanti devono essere gestite sempre tramite Soft Particles.
Oltre che per la gestione di effetti volumetrici particolari, come quelli che abbiamo appena visto, Volumetric Texturing in Metro Last Light viene impiegata anche per la riproduzione dell'erba e dello strato di pelo dei tetri, in modo da avere un impatto minimo sulle prestazioni.
In definitiva, come abbiamo visto, il motore grafico di Metro Last Light offre degli spunti tecnici interessanti, e consente ai giocatori di avere una grafica decisamente superiore alla media, pur non rappresentando un'evoluzione sostanziale rispetto a quanto visto in Metro 2033. Ma per tutte le altre considerazioni vi rimandiamo alla recensione di Metro Last Light.
25 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoAlla pag. 2, relativa a Physx, si dice:" [I]Ricordiamo che Metro Last Light è un gioco The Way It's Meant to be Played, quindi risulta ottimizzato per le soluzioni video Nvidia, che gestiscono PhysX in hardware. Nel caso di schede video AMD Radeon, invece, questi calcoli vengono affidati alla CPU, cosa che comporta un lieve calo nelle prestazioni.[...][/I] " In realtà il gioco tramite physx, se fatto girare su una gpu AMD, comporta un CROLLO prestazionale sulla cpu, non un lieve calo come si è appena letto. Ho potuto provare di persona, con un i7 3770 a default, tutto fila liscio nelle situazioni "normali", di passaggio negli accampamenti, ma appena si comincia a combattere, si lanciano granate e via dicendo, si arriva intorno ai 10 fps. Per cui, mi rivolgo in generale: se volete giocare assolutamente a Physx e avete AMD, non potete farlo. A meno che non abbiate una scheda secondaria (nvidia) da dedicare esclusivamente alla fisica di gioco. Physx gira al meglio su nvidia, e questo si sa, ma aggiungo: gira esclusivamente su nvidia perchè su cpu è ingiocabile.
Per il resto, confermo ciò che viene detto su quella pagina, il gioco è programmato bene, e tolte alcune opzioni killer, gira senza problemi.
A pagina 4, al capitolo anti-aliasing, si ricorda questo: "In Metro 2033 i giocatori potevano utilizzare la tecnica di Multisample Anti-Aliasing (MSAA) per avere immagini ancora più nitide rispetto a quelle ottenute tramite AAA. Purtroppo, però, questa tecnica aveva un forte impatto sulle prestazioni per via della presenza della tecnica di illuminazione differita usata dal 4A Engine.
Per Last Light, quindi, 4A Games ha sostituito MSAA con la nuova tecnica Supersampling Anti-Aliasing (SSAA), che offre un notevole miglioramento nella qualità delle immagini come potete vedere anche nei due screenshot che riportiamo in questa pagina."
Non c'è nulla di falso in ciò che è stato scritto, prima 4A Games adottava il MSAA, ora il SSAA, ma... non c'è alcuna razionalità nei passaggi che si succedono, praticamente è come se venisse detto: il msaa aveva un forte impatto sulle prestazioni, quindi ora 4A Games lo ha sostituito con il SSAA. Cio' farebbe pensare che sia più accessibile, ma non è così. Migliora ulteriormente la qualità visiva rispetto al MSAA, [U]MA[/U] è ancora più pesante, non c'è nulla di "gratis" su questo campo e chi lo pratica da anni lo sa benissimo.
assolutamente si dovrebbe specificarlo, ma forse lo davano per scontato... o no? Quel software è stato sviluppato prettamente per le gpu Nvidia. In realtà io credo che si possa mettere mano per farlo girare su qualsiasi GPU, ma non mi va neanche di guardarlo perché sono totalmente contrario, penso anche che sia criptato, usano CUDA...quindi andrebbe ricompilato in un altro modo e non è affatto facile.
C'è anche da dire che si ostinano a rilasciare il 2.8 agli utenti finali ed orientare in tal senso gli sviluppatori, proprio perché il 3 viaggia meglio su CPU multicore... "Enhanced multi-threading (PC CPU, Xbox 360)"
rendetevi conto che furbetti se guardate in benchmark la differenza tra il 3.3 ed il 2.8.4 è abissale, quasi il doppio più veloce...significa che il 3.3 attualmente anche su CPU abbastanza potente girerebbe in modo dignitoso.
Però non è solo questo che si dovrebbe specificare, ma anche il fatto che in verità sono davvero pochi i titoli che facciano uso di Physx: molti tra i titoli già rilasciati e tra quelli in via di sviluppo usano altri motori per la fisica, chi la fisica inclusa nel suo engine proprietario chi l'Havok...perché forse a volte gli sviluppatori pensano più ad una maggiore fetta di clienti soddisfatti che alle aziende di gpu e le loro strategie di marketing...c'è chi si fa comprare e chi invece fa comprare tutti i clienti col sorriso. Anche se il Physx fosse di Amd io non sarei d'accordo con gli sviluppatori che non garantiscono la stessa esperienza di gioco alla clientela più vasta...
L'idea e', sempre in ottica console next gen, pesare il meno possibile sul mio quad core, dovendo stare dietro agli otto nelle console.
L'idea e', sempre in ottica console next gen, pesare il meno possibile sul mio quad core, dovendo stare dietro agli otto nelle console.
attento...non fare ragionamenti strani...non pensare che gli 8 core delle nuove console vadano il doppio dei 4 del tuo quadcore...i loro sono cmq chip castrati rispetto al tuo...solo che dire che hanno 8 core fa figo e "potente"(come hanni fa i GHz facevano figo...vai poi a spiegare che un coreduo a 3 ghz è meno performante di un i5 a 2.5 per dire... ). Anche perchè ti sembra che in una scatoletta che costerà poco più che il solo tuo chip ne mettano uno che ha il doppio della tua potenza?
Stalker 2 con quel motore grafico dovranno pur farlo
apparte se il gioco è moddabile.... un sdk o altro che-.-.-
Le esplosioni senza Physx son ridicole, pure il primo metal gear solid riusciva a fare di meglio. Non si sono inventati niente, le hanno semplicemente castrate e rese ridicole sulle gpu Radeon.
E come detto anche dall' utente sopra, gli sdk usati sono vecchierrimi, l' hanno fatto di proposito per dare meriti alle gpu nvidia dove non ci sono, queste disparità di trattamento sono assurde.
Il brutto è che anche con la prossima generazione, basata totalmente su AMD, dovremmo assistere a questo scempio, solo per far belle le schede nvidia.
Non si tratta di favorire Nvidia su AMD per far bella la prima contro la seconda, si tratta che Nvidia dà un supporto ad una cosa (la fisica) per cui AMD non ha uno specifico SDK.
E' una scelta razionale quella di usare un SDK invece di fare tutto da zero, e poi certo, Nvidia ne ottiene pubblicità, ma POI, non prima.
Purtroppo però PhysX e rendering vanno di pari passo, ergo da tempo non è più possibile usare - senza alcuni tweak - una GPU Nvidia per PhysX se il rendering è fatto da una GPU AMD.
Questa è la vera limitazione, non il PhysX in sè come tecnologia.
Per chi parla di "vecchiaia" dell'SDK di PhysX.....ma sapete che ci vogliono anni a fare un videogioco? Mica si usa l'SDK di quando esce sul mercato eh.....
Stalker 2, morirai da sognatore! Se vincessi al superenalotto finanzierei personalmente il gioco... non capisco perchè non fanno un kickstarter!
Tornando a metro: spettacolare, di gran lunga superiore a molti giochi anche i piu blasonati di quest'anno (bioshock infinite in primis). Grafica bellissima, storia emozionante e gameplay molto molto molto migliorato rispetto al 2033! Un altra cosa: giocarlo a 60fps e giocarlo a 30-40 sono due cose diverse, per chi non avesse provato senza stare li a cambiarsi tutti i settings mettete l'ssaa a 0.5 e provate di persona!
Non si tratta di favorire Nvidia su AMD per far bella la prima contro la seconda, si tratta che Nvidia dà un supporto ad una cosa (la fisica) per cui AMD non ha uno specifico SDK.
E' una scelta razionale quella di usare un SDK invece di fare tutto da zero, e poi certo, Nvidia ne ottiene pubblicità, ma POI, non prima.
Purtroppo però PhysX e rendering vanno di pari passo, ergo da tempo non è più possibile usare - senza alcuni tweak - una GPU Nvidia per PhysX se il rendering è fatto da una GPU AMD.
Questa è la vera limitazione, non il PhysX in sè come tecnologia.
Per chi parla di "vecchiaia" dell'SDK di PhysX.....ma sapete che ci vogliono anni a fare un videogioco? Mica si usa l'SDK di quando esce sul mercato eh.....
non c'entra lo specifico sdk, infatti c'è chi se lo fa da solo o usa Havok, l'ho già spiegato...inoltre un buon programmatore riesce tranquillamente ad aggiornare il codice del Physx...volendo... un po' come il php, certo c'è del lavoro da fare ma non è di sicuro impossibile visto che gli effetti vengono richiamati tramite funzioni e non sono per forza sempre presenti in tutti gli scenari...a volte c'è da cambiare qualche chiamata, magari solo nella sintassi...dipende, tutto qua. Se non vogliono farlo girare in un certo modo su CPU il motivo c'è...e non è la data di rilascio dell'sdk... potrebbero pure rilasciare una patch che vada ad agire su questo ma non lo fanno perché non è nel loro interesse e neanche Nvidia fornisce il supporto nell'ultimo pacchetto utente...
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".