Ubisoft spiega come è stato creato l'oceano di Assassin's Creed III

Ubisoft spiega come è stato creato l'oceano di Assassin's Creed III

In un interessante articolo tecnico possiamo apprendere nuovi dettagli sulla realizzazione tecnica dell'ultimo capitolo di Assassin's Creed.

di pubblicata il , alle 08:30 nel canale Videogames
UbisoftAssassin's Creed
 

Un articolo apparso su FX Guide spiega alcuni interessanti dettagli tecnici che stanno alla base del motore grafico di Assassin's Creed III. "Solo un decennio fa un oceano interamente renderizzato ti permetteva di vincere un Oscar, adesso invece è solo una minima parte di un videogioco", si legge nell'articolo.

AnvilNext Render Engine

L'oceano deve occupare solo una parte della capacità di elaborazione del sistema. Su console si hanno tempistiche ben precise per espletare ciascuno dei compiti, perché bisogna mantenere un frame rate fisso. Se si vogliono avere 30 frame per secondo, infatti, occorre renderizzare ogni fotogramma entro 16.67ms.

Per questo Ubisoft ha dovuto assegnare solo una piccola parte della capacità di elaborazione dei sistemi al rendering degli oceani. Insomma, se ci fossero solamente oceani nella schermata di gioco, il motore grafico di Assassin's Creed III sarebbe in grado di renderizzare 200 frame al secondo con l'hardware delle console.

AnvilNext Render Engine

È quindi necessario renderizzare i liquidi ed espletare i calcoli su fisica delle navi e su azione di gioco più velocemente rispetto al real time, visto che il motore AnvilNext Render Engine deve poi provvedere anche ai personaggi, alle altre navi e agli altri equipaggi contro cui si combatte.

L'articolo si avvale della collaborazione di Georges Torres, Senior Technical Director di ACIII. Torres lavora per Ubisoft Singapore, lo studio interno al produttore francese che si è occupata nello specifico della parte di simulazione dei liquidi di ACIII.

Torres spiega che gli oceani dovevano innanzitutto essere realistici, scalabili e che bisognava renderizzarli in tempo reale. "Per risolvere questi problemi, il team di sviluppo aveva bisogno di una nuova tecnologia per la simulazione dei liquidi e di nuova fisica per la gestione delle navi, visto che non avevamo alcuno riferimento all'interno del loro precedente motore", aggiunge lo sviluppatore.

"Per creare le onde abbiamo dovuto gestire una combinazione di strati, ognuno dei quali rappresentava un elemento diverso come la schiuma, le normal map, i modelli di onda a bassa e alta frequenza, e i colori. Gli sviluppatori hanno quindi costruito una scala che va da 0 a 12, che descrive le onde e le condizioni del vento. Per ogni livello, proprio come fa il servizio meteorologico nazionale, ha definito una serie di parametri per le onde". Quindi, a seconda delle condizioni che si vogliono riprodurre nel gioco, si possono avere onde più o meno alte o increspate, tagli e forme diverse per la schiuma.

"Le varie forme della schiuma possibili sono pre-calcolate per ciascun frame", continua a spiegare Torres. "La soluzione finale è infatti una combinazione di elementi pre-calcolati e in tempo reale, con alcuni aspetti temporali, come la dispersione degli schizzi d'acqua gestita in tempo reale".

AnvilNext Render Engine

La gestione della formazione della schiuma quando le onde vanno a infrangersi sulla costa è principalmente un procedimento offline. Le schiume, infatti, vengono determinate in base al tipo di roccia che compone quel tratto di costa. Ubisoft Singapore ha così stabilito dei comportamenti diversi a seconda del livello di rugosità delle rocce. Come spiegato nell'articolo a cui ci stiamo rifacendo, i tecnici hanno associato un colore a ogni livello di rugosità, per cui nella seconda parte del lavoro è bastato modificare i colori per avere effetti di dispersione diversi.

Per quanto riguarda la trasparenza dell'acqua sono state preparate due griglie strutturate. Una delle due griglie regola l'opacità mentre l'altra le gradazioni di colore. La combinazione delle due griglie consente ai tecnici di Ubisoft di simulare la trasparenza, la dispersione e la colorazione in funzione della distanza dalla riva e della profondità dal suolo marino.

AnvilNext Render Engine

Dopo aver completato i calcoli preliminari, il motore applica un ulteriore strato di effetti come sub surface scattering, riflessioni e rifrazioni. Ma il comparto grafico è solo uno dei problemi che i tecnici hanno dovuto affrontare, visto che le onde devono poi interagire dinamicamente sul piano fisico con le navi. Anche in questo caso si tratta di un compromesso tra fisica reale e limiti imposti dalla necessità di smaltire i calcoli entro i tempi prestabiliti.

Le navi sono gestite separatamente in base agli elementi che le compongono, e questi ultimi possono staccarsi dalla struttura principale e finire in acqua. Il motore calcola in tempo reale l'interazione tra superfici liquidi e detriti, che vanno a generare nuove increspature e a galleggiare realisticamente.

AnvilNext Render Engine

Abbiamo riassunto solamente i punti salienti dell'articolo, al quale invece vi rimandiamo per avere una disamina completa dell'interessante aspetto tecnico dell'AnvilNext. Per altri dettagli sul motore grafico di Assassin's Creed, come gestione dell'anti-aliasing e della tassellazione, vi rimandiamo invece alla nostra precedente analisi tecnica.

8 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
dinox15 Gennaio 2013, 09:25 #1
Complimenti....articolo scritto in modo semplice e chiaro.
rigelpd15 Gennaio 2013, 09:36 #2
Non lo credevo ma le battaglie navali di Assassin's Creed 3 sono davvero incredibilmente divertenti. Potrebbero quasi farne un gioco a parte...
Revan198815 Gennaio 2013, 10:16 #3
Senza dubbio bellissime le battaglie navali... ma avrei preferito uno spin off dedicato a queste e un po' più di spessore nella trama principale che rispetto gli altri capitoli è un po' troppo tagliata e semplice... Inoltre la mancanza di armature, varietà di armi e simili non la capisco proprio... Di gran lunga migliori gli episodi che vedono Ezio Auditore come protagonista...
Avatar015 Gennaio 2013, 11:01 #4
Ma questi ancora parlano ?!?

SHUT THE F*** UP !

Il gioco peggio ottimizzato della storia, anche parlare di ottimizzazione è u eufemismo ... l' hanno proprio fatto apposta, sono degli incapaci.
La grafica fa' anche abbastanza schifo come se non bastasse.
jappilas15 Gennaio 2013, 12:45 #5
interessante..

( peraltro erano anni che qui non si leggeva qualcosa di minimamente tecnico riguardante engine 3d ludici e relativo texturing, almeno dalle discussioni sui primi deferred con global illumination...)
Gabro_8215 Gennaio 2013, 14:07 #6
Originariamente inviato da: rigelpd
Non lo credevo ma le battaglie navali di Assassin's Creed 3 sono davvero incredibilmente divertenti. Potrebbero quasi farne un gioco a parte...


Anche io avevo pensato la stessa cosa.

Originariamente inviato da: Avatar0
Ma questi ancora parlano ?!?

SHUT THE F*** UP !

Il gioco peggio ottimizzato della storia, anche parlare di ottimizzazione è u eufemismo ... l' hanno proprio fatto apposta, sono degli incapaci.
La grafica fa' anche abbastanza schifo come se non bastasse.


Il gioco peggio ottimizzato della storia è GTA IV.
rimini8016 Gennaio 2013, 14:44 #7

Domanda banale

Non mi tornano i conti sugli FPS: 16.67ms * 30fps = 500ms

Forse il tempo è riferito al 3D??
gufino216 Gennaio 2013, 19:03 #8

Riguardo FPS

rimini80, in realtà hai ragione, probabilmente hanno cannato a scrivere nell'articolo. 16.6ms sono il tempo di rendering massimo per frame per mantenersi a 60fps, non a 30

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