Metro Last Light: i dettagli tecnici del motore grafico

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 nel canale Videogames
 

Ombre, 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.

Motion Blur

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.

Ombre

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.

Skin Shading

Skin Shading

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.

Soft Particles

Soft Particles

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.

Volumetric Texturing

Volumetric Texturing

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.

  • Articoli Correlati
  • Recensione Metro Last Light: non ci può essere potere senza sangue Recensione Metro Last Light: non ci può essere potere senza sangue Dopo aver dedicato l'ultima settimana al nuovo shooter di 4A Games, eccovi le nostre considerazioni in fatto di gameplay e tecnologia. Last Light è il proseguimento della storia che abbiamo avuto modo di vivere in Metro 2033, raccontata lungo una campagna da 20 ore. All'interno trovate anche il videoarticolo e una gallery di screenshot inediti.
  • Metro Last Light: di nuovo soli nella metro di Mosca Metro Last Light: di nuovo soli nella metro di Mosca Metro Last Light è uno dei più interessanti titoli del line-up di THQ per il prossimo anno. Vediamo quali sono i miglioramenti rispetto al precedente capitolo e le caratteristiche di gioco completamente nuove, come il multiplayer. THQ ha realizzato un video playthrough di 13 minuti che mostra gli elementi salienti del nuovo shooter di 4A Games.
25 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Fantomatico24 Maggio 2013, 18:31 #1
Ho appena finito di leggere l'articolo. Interessante, analizza in modo esaustivo gli aspetti tecnici del videogioco in questione, però mi permetto di far notare delle imprecisioni: nel senso che su alcune pagine vengono utilizzati dei termini non adatti, fuorvianti e che è meglio far notare nella loro versione corretta.

Alla 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.

7stars24 Maggio 2013, 18:54 #2
Originariamente inviato da: Fantomatico
Physx gira al meglio su nvidia, e questo si sa, ma aggiungo: gira esclusivamente su nvidia perchè su cpu è ingiocabile.

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...
xxxyyy25 Maggio 2013, 02:38 #3
Dubbio da niubbo: visto che PhysX gira "SOLO" su GPU Nvidia e oramai non conviene piu' comprare una tale marca di GPU... visto che i giochi DX11.1 saranno tutti ottimizzati per AMD, la mia domanda e' questa: si puo' mettere una GPU AMD per la grafica e una Nvidia per la fisica? E casa basterebbe per gestire al massimo tutti sti effetti fisici? (oggigiorno, perche' se Nvidia domani ci piazza quella demo dei fluidi, suppongo basera' una 690...)
L'idea e', sempre in ottica console next gen, pesare il meno possibile sul mio quad core, dovendo stare dietro agli otto nelle console.
jotaro7525 Maggio 2013, 08:29 #4
Originariamente inviato da: xxxyyy
Dubbio da niubbo: visto che PhysX gira "SOLO" su GPU Nvidia e oramai non conviene piu' comprare una tale marca di GPU... visto che i giochi DX11.1 saranno tutti ottimizzati per AMD, la mia domanda e' questa: si puo' mettere una GPU AMD per la grafica e una Nvidia per la fisica? E casa basterebbe per gestire al massimo tutti sti effetti fisici? (oggigiorno, perche' se Nvidia domani ci piazza quella demo dei fluidi, suppongo basera' una 690...)
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?
full metal25 Maggio 2013, 10:14 #5
.:M,A,E,S,T,O,S,O:.. :Q_____ [COLOR="Black"]tiene anche spazi aperti?[/COLOR] e allora UN IPOTAMOTETICO
Stalker 2 con quel motore grafico dovranno pur farlo

apparte se il gioco è moddabile.... un sdk o altro che-.-.-

[SPOILER] che è sempre meglio del cryengine 3 che non si chiama dunia 2 O_o XD [/SPOILER]


Originariamente inviato da: jotaro75
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?
e che in due tre anni quella scatoletta verrà ottimizzata a mille tipo, hanno promesso che il cryengine 4 lo baseranno su quelle "scatolette"
Avatar025 Maggio 2013, 10:59 #6
Come si può vedere nelle immagini appena sopra, quindi, se la funzione PhysX avanzato è disabilitata, ci sono esplosioni di breve intensità e detriti che scompaiono subito dopo, senza interagire con gli altri oggetti del mondo di gioco. Invece con PhysX avanzato abbiamo esplosioni più realistiche e detriti che hanno rapporti con il resto del mondo di gioco.


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.
Adam Jensen25 Maggio 2013, 14:00 #7
Nota per chi parla del PhysX: vedo idee un po' confuse.

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.....
Grey 725 Maggio 2013, 15:39 #8
physx o meno è un motore grafico eccezionale in grado di rendere benissimo sia negli interni quanto negli esterni (questi ultimi mi hanno sbalordito particolarmente) e di trasmettere atmosfera a non finire. Inoltre è leggero per quello che offre. Sbavo anch'io all'idea di vedere un ipotetico stalker 2 con questa grafica.
IOWA25 Maggio 2013, 16:55 #9
Originariamente inviato da: Grey 7
physx o meno è un motore grafico eccezionale in grado di rendere benissimo sia negli interni quanto negli esterni (questi ultimi mi hanno sbalordito particolarmente) e di trasmettere atmosfera a non finire. Inoltre è leggero per quello che offre. Sbavo anch'io all'idea di vedere un ipotetico stalker 2 con questa grafica.


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!
7stars25 Maggio 2013, 17:31 #10
Originariamente inviato da: Adam Jensen
Nota per chi parla del PhysX: vedo idee un po' confuse.

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".

La discussione è consultabile anche qui, sul forum.
 
^