Crysis 3 e CryEngine 3: fotorealismo raggiunto?

Crysis 3 e CryEngine 3: fotorealismo raggiunto?

Negli ultimi giorni abbiamo provato intensamente l'ultimo gioco di Crytek, principalmente per andare a scovare gli spunti tecnici di maggiore interesse. Crysis 3 offre un dettaglio grafico, a tratti, fotorealistico, a cui fa da contraltare però un gameplay spesso approssimativo, con un bilanciamento non sempre convincente. Le immagini sparse per l'articolo sono quelle fornite dal produttore, mentre nella gallery trovate una serie di shot che abbiamo catturato dall aversione PC di Crysis 3 impostata al massimo livello di dettaglio grafico.

di Rosario Grasso pubblicato il nel canale Videogames
 

Le specifiche tecniche del CryEngine 3

Nonostante presenti dei limiti, come abbiamo già visto, in termini di gestione di ampi spazi aperti e di fisica, anche per quanto riguarda il ragdoll dei soldati avversari, CryEngine 3 in Crysis 3 presenta a tratti degli scorci che si avvicinano sensibilmente al fotorealismo. Il livello di dettaglio poligonale, corroborato da una migliore gestione degli effetti in post-processing, degli effetti particellari e della gestione filo per filo dell'erba, raggiunge delle vette semplicemente inesplorate prima d'ora nel mondo dei videogiochi.

Natural Lighting & Dynamic Soft Shadows

Nella lista delle caratteristiche tecniche del motore, implementate in Crysis 3, troviamo: SSDO – Screen Space Directional Occlusion, ombre di contatto, profondità di campo di tipo Bokeh, Deferred Lighting, proiezione delle ombre direzionale e puntiforme, effetto che simula l'adattamento dell'occhio alle differenti condizioni di luce, illuminazione in high dynamic range (HDR), Colour grading, effetto di movimento, riproduzione tridimensionale dei liquidi in alta qualità, nuvole volumetriche processate in tempo reale, HDR procedurale per lens flare e forme, Parallax Occlusion Mapping, illuminazione globale di terza generazione.

Nelle specifiche tecniche sul suo motore grafico, Crytek parla di illmuniazioni naturali e di ombre dinamiche di tipo soft shadows. CryEngine 3 consente di avere illuminazioni naturali molto vicine a quelle reali a basso costo in termini di capacità di elaborazione impiegata. Il motore grafico è in grado di generare ombre morbide che dinamicamente rispondono ai movimenti naturali in tempo reale. Nel motore sono inclusi anche la correzione della prospettiva e le ombre volumetriche, mentre tutti questi contenuti possono essere riprodotti in alta risoluzione.

CryEngine 3 comprende anche un sistema per la creazione di illuminazioni ad alte prestazioni e simulazione del radiosity chiamato Irradiance Volumes. Questa tecnica permette, inoltre, di aggiungere colore alla luce riflessa. Per esempio, se della luce bianca colpisce un oggetto rosso produrrà una riflessione di un colore tendente al rosa sugli oggetti che si trovano nell'ambiente circostante. Irradiance Volumes consente, inoltre, agli sviluppatori di inserire efficacemente molte luci nella scena di gioco, anche con sovrapposizione dei raggi emessi. Questa tecnica è molto efficace soprattutto nelle scene di intermezzo, in cui il giocatore non interviene direttamente, rendendo i personaggi coinvolti più realistici, proprio perché riflettono in maniera fedele la luce che impatta sul loro corpo.

Irradiance Volume

Sostanzialmente, dice Crytek, è come avere il regolare sistema del deferred rendering, al quale però viene aggiunto uno strato supplementare in cui non ci sono più restrinzioni in fatto di sovrapposizione delle luci e si ottiene una simulazione del radiosity.

CryEngine 3 è altresì dotato di una soluzione che gestisce dinamicamente e in tempo reale l'illuminazione globale, ottimizzata per le piattaforme attuali e per quelle di prossima generazione. Secondo Crytek, per la prima volta, senza limiti di pre-calcolo o determinati dalla geometria dei livelli di gioco, si può avere esperienza della riflessione della luce, della gradualità dei colori e degli effetti speculari, in maniera unificata per tutti gli oggetti statici e per tutti gli oggetti dinamici presenti nella scena.

La tecnica individuata da Crytek come Light Propagation Volume (LPV) serve, poi, per approssimare gli effetti dell'illuminazione indiretta in scene completamente dinamiche. Per raggiungere questo obiettivo, LPV usa reticoli e armoniche sferiche per riprodurre la distrubizione spaziale e angolare della luce nella scena. LPV non richiede alcun tipo di pre-calcolo e gestisce le scene di grandi dimensioni con reticoli annidati. Il suo primo obiettivo è quello di renderizzare ogni singola riflessione indiretta insieme al conseguente effetto di occlusione, ma può essere estesa per gestire più riflessioni e media.

Con CryEngine 3 la particelle diventano compatibili con l'effetto di movimento e possono anche ricevere l'ombra e le informazioni sulla luce legate ad altri oggetti presenti sulla scena, oltre che dipendenti dall'illimunazione globale. Questo migliora in maniera evidente, e con ripercussioni anche sul gameplay, la consistenza dell'illuminazione delle particelle.

CryEngine 3, inoltre, supporta ovviamente le DirectX 11 e l'effetto di tassellazione, accelerata tramite l'hardware dedicato. La tassellazione è posssibile su tutte le meshes, personaggi animati compresi. Il motore grafico della software house di Francoforte supporta tre diversi tipi di tassellazione, che possono essere combinati tra di loro in modo da aumentare la qualità del rendering. La tecnica di displacement mapping è il principale tipo di tassellazione usato da CryEngine e aiuta a riprodurre sagome e forme geometriche complesse, a un livello di dettaglio impossibile da raggiungere con la vecchia tecnica del bump mapping.

Tessellation

Tessellation on

Tessellation

Tessellation off

Gli altri due metodi di tassellazione servono a scopo di rifinitura dei modelli poligonali. Gli sviluppatori possono interagire direttamente con queste tecniche, e modificarle, attraverso il potente editor Sandbox del CryEngine 3, che permette di modificare i mondi di gioco in tempo reale mentre questi ultimi sono in esecuzione.

Normal Maps & Offset Bump Mapping

CryEngine 3 integra, ancora, uno strumento per la gestione delle riflessioni locali in tempo reale. Real-time Local Reflections (RLR) permette a qualsiasi tipo di superficie curva presente nella scena di riflettere la luce sugli oggetti che si trovano nei dintorni in maniera efficiente e in tempo reale. Si può applicare anche su oggetti estremamente complessi che presentano auto-riflessioni, su cui non è possibile usare le precedenti tecniche di gestione delle riflessioni.

Parallax Occlusion Mapping (POM) in CryEngine 3 è presente in versione potenziata, e consente di aggiungere il cosiddetto self-shadowing, ovvero la possibilità di un oggetto di proiettare ombre su sé stesso, oltre che di conferire ulteriore profondità a tutte le superfici, incrementandone il livello di dettaglio. Questa tecnica viene utilizzata principalmente nelle versioni console di Crysis 3, perché è in grado di rimpiazzare efficacemente la tassellazione in assenza di hardware dedicato.

Crytek aveva già introdotto in passato la tecnica del SSAO in tempo reale, mentre adesso mette a disposizione anche Screen Space Directional Occlusion (SSDO). Consente di includere un numero imprecisato di fonti di illmunazione all'interno dei calcoli sull'occlusione ambientale. SSDO migliora la precisione dell'illuminazione e fornisce ombre dinamiche di contatto.

SSDO

SSDO on

SSDO

SSDO off

L'occlusione ambientale consente di riprodurre il reale oscuramento di bordi e angoli. L'impelementazione di base dell'occlusione ambientale, introdotta da Crytek nel 2005, ha un basso consumo in termini di capacità di elaborazione e può essere applicata anche su Xbox 360 e PlayStation 3, oltre che su PC.

SSAO

SSAO on

SSAO

SSAO off

Gli shader di CryEngine 3 sono stati scritti una singola volta in linguaggio ad alto livello, e poi vengono compilati automaticamente per ogni piattaforma. Il sistema che consente questo tipo di automazione viene definito da Crytek come Uber Shader Technology. La versione definitiva dello shader nel mondo di gioco viene quindi ottimizzata in funzione delle esigenze degli artisti e dell'ambiente tridimensionale in cui lo shader viene utilizzato. Gli shader vengono utilizzati per riprodurre gli effetti dell'occultamento o per rendere bagnate alcune superfici. Vari shader possono essere combinati insieme.

Con CryEngine 3, le superfici d'acqua e di altri liquidi possono interagire dinamicamente con il vento, creando effetti realistici nel momento in cui l'acqua si infrange sui litorali o su imbarcazioni, dipendenti inoltre dalla conformazione della battigia e dalla profondità dell'acqua. Inoltre, la simulazione dell'effetto delle caustiche consente di avere ombre realistiche di riprodurre fedelmente gli scenari sottomarini.

I volumi d'acqua sono ottimizzati grazie all'hardware DX11 dedicato alla tassellazione. La geometria delle meshes risulta, quindi, dinamicamente tassellata, variando in funzione della distanza della telecamera. Questo consente di utilizzare una grande quantità di dati geometrici per i liquidi che si trovano vicini alla telecamera e di eliminare l'aliasing geometrico. La simulazione dei liquidi in CryEngine 3 supporta, inoltre, il sub-surface scattering e l'approssimazione della schiuma sulla cresta delle onde. Non si tratta di dettagli meramente grafici, perché tutto questo interagisce dinamicamente con il motore fisico di CryEngine 3.

I progettisti possono utilizzare questi effetti di illuminazione per creare fasci di luce dal forte impatto visivo e ombre realistiche quando la luce si intersesca con geometrie solide ampiamente dettagliate. Queste tecniche possono essere utilizzate anche per gestire i fasci di luce nel cielo, sulla terra e attraverso i liquidi, come suggeriscono anche le seguenti immagini.

Dynamic Volumetric Light Beams & Light Shaft Effects

La feature Blend Layer permette poi di fondere un secondo set di texture al set di base per ottenere un maggior livello di variazione sulle superifici piastrellate. La tecnica consente di ottenere transizioni lisce e fluide tra i vari strati che formano una superficie. Altri dettagli e immagini su queste specifiche tecniche si trovano su Mycryengine.com

Naturalmente non è facile gestire tutti questi contenuti neanche per i PC di recentissima concezione. Anzi, dobbiamo dire che Crysis 3 è il gioco che ha messo maggiormente in difficoltà i due PC sui quali realizziamo i nostri test videoludici. Su Intel i5 750, GeForce GTX 660 Ti e 4 GB di RAM si riesce a giocare a livello di dettaglio impostato su elevato, rinunciando all'anti-aliasing temporale, a 30 fps abbondanti. Nell'altra configurazione su cui abbiamo giocato Crysis 3, con Intel i5 2500, GeForce GTX 570 e 4 GB di RAM, invece bisogna scendere a livello di dettaglio medio per superare i 30 fps. Per avere invece i 60 fps bisogna pesantemente venire a patto con il livello di dettaglio e rinunciare al filtro di anti-aliasing su entrambe le configurazioni. Per altri dettagli sulle prestazioni di Crysis 3 fate riferimento all'analisi prestazionale di GeForce GTX Titan.

Non siamo stati esaustivi su tutte le tecniche impiegate da Crytek con il suo motore grafico, ma potete trovare ulteriori informazioni, principalmente sulle tecniche di anti-aliasing e sul loro confronto, in questo articolo, mentre qui si parla di strumenti di sviluppo, di shader, personaggi, intelligenza artificiale, riproduzione geometrica del mondo di gioco, riproduzione tridimensionale dei liquidi e 3D stereoscopico.

 
^