Un sole per controllarli tutti e, nel buio, illuminarli! Nell’AtV di oggi si parla del Sistema delle Luci e molto altro!


  

AGGIORNAMENTO DALLO STUDIO – LOS ANGELES

·        Negli studi di LA hanno fatto degli importanti passi in avanti con il Sistema Oggetti 2.0.

·        L’intercettore Origin M50 è stato utilizzato come banco di prova per la prima implementazione del Sistema Oggetti 2.0.

o   Gli strumenti che hanno realizzato durante la conversione della M50 torneranno utili per velocizzare la conversione di tutte le altre 49 navi attualmente pilotabili.

o   Con l’introduzione del Sistema Oggetti 2.0, i componenti delle navi avranno caratteristiche e comportamenti differenti in termini di emissioni EM/IR della nave e di prestazioni in gioco.

o   Un componente potrebbe quindi generare segnali EM/IR meno intensi (e quindi rendere la nave meno facile da rilevare) rispetto ad un altro, ma potrebbe anche avere delle prestazioni peggiori.

o   Starà ai giocatori scegliere quale approccio prendere e come poi sfruttarlo in gioco.

o   In questo momento stanno anche lavorando sul bilanciamento dei segnali EM/IR generati dai vari componenti delle navi, dei loro consumi in termini di carburante o energia e delle prestazioni dei vari componenti delle armi.

·        Il QA ha supportato queste operazioni modificando le liste di controllo già esistenti in base alle necessità della nuova struttura del Sistema Oggetti 2.0.

o   Contrariamente al passato, per ogni nave sarà adesso necessario andare a controllare un maggior numero di situazioni e configurazioni per verificare che ogni cosa funzioni a dovere, da cui la necessità di modificare tali liste di controllo.

·        Gli ingegneri hanno migliorato la persistenza e l’inventario, che adesso accetta le query di dati riguardanti entità non ancora spawnate, oltre a tenere in considerazione anche lo stato di navi ed oggetti abbandonati in gioco.

o   Gameplay quali cargo, trasporto, shopping e così via lavoreranno utilizzando dati persistenti, vale a dire dati che non verranno resettati tra un login e l’altro.

o   Questo vuol dire che tra un logout ed un login, gli oggetti di vostra proprietà rimarranno esattamente nella stessa posizione e nelle stesse condizioni in cui erano al momento del logout… A meno che un pirata non intervenga a fare il suo lavoro.

·        Sono stati fatti dei progressi con il meccanismo di trasporto veicoli all’interno di altre navi; in particolare, si sono concentrati sul caso del Rover Ursa, che aveva la tendenza ad esplodere quando caricato sulla Connie.

o   Questo meccanismo sfrutta una nuova versione del sistema di atterraggio, che è stato arricchito con una nuova interfaccia ed un nuovo meccanismo di aggancio.

o   In questo modo, sarà possibile individuare chiaramente le zone in cui si potranno “bloccare” i veicoli all’interno di altri mezzi di trasporto.

·        Anche il motore Quantistico è stato convertito al Sistema Oggetti 2.0, cosa che permetterà ai giocatori di vedere i punti di navigazione di cui sono a conoscenza a prescindere dalla loro lontananza o posizione, nonché di utilizzare correttamente il sistema di alimentazione per i controlli su energia e carburante. A breve inizieranno ad occuparsi dei nuovi effetti grafici e sonori.

o   Questo implica che, nel momento in cui verrà tolta l’energia alla nave (o per qualche motivo terminerà il carburante mentre si è in viaggio quantistico), il velivolo uscirà immediatamente da questa modalità di volo.

·        Inoltre, è stato implementato un sistema di autopilota all’interno del Sistema di Controllo di Volo Intelligente (IFCS) ed il supporto cinematico alle animazioni dei propulsori.

o   L’autopilota sarà in grado di effettuare operazioni di atterraggio, decollo o di viaggio quantistico utilizzando l’IA del gioco.

·        Il team delle navi ha completato i nuovi sedili delle navi Aurora ES ed Aurora LN ed ha anche iniziato a lavorare all’implementazione dei motori all’interno della struttura del Sistema Oggetti 2.0.

o   Inoltre, stanno terminando il gray box e le animazioni della Anvil Terrapin.

·        Il team tecnico ha sviluppato un installer standalone che permetterà alle aziende di outsourcing di installare soltanto le funzionalità ed i campioni necessari al loro lavoro.

o   In questo modo, gli ingegneri CIG potranno dedicare meno tempo al supporto fornito alle compagnie esterne.

o   Parallelamente, questo approccio permetterà di portare il livello qualitativo del lavoro delle terze parti in linea con quello della CIG.

·        Sono stati creati degli script di “Source Rigging” (SRC) che permetteranno agli artisti di creare rapidamente i nuovi aggiornamenti per il modello e le animazioni dei personaggi senza introdurre nuovi bug.

·        Il team artistico tecnico ha creato una nuova struttura dati che permetterà la personalizzazione del colore degli occhi dei personaggi in base ad una serie di possibilità predefinite.

·        Il team ingegneristico ha utilizzato i tag del Sistema di Trasporto Oggetti per migliorare la coerenza delle texture riguardanti il colore della testa e del resto del corpo dei personaggi.

o   In passato, a volte alcuni personaggi potevano avere la pelle della testa di un colore e quella del resto del corpo di tutt’altro colore. In questo modo, tali situazioni non si dovrebbero più ripresentare.

·        È stato creato un procedimento che simula le scie del motore in atmosfera, oltre che dei nuovi strumenti che migliorano l’efficienza di sviluppo dei LOD, così da poter ridurre il tempo necessario per la creazione di nuove navi.

·        Infine, hanno continuato a lavorare ed a definire gli avamposti di superficie e le risorse che saranno presenti al loro interno.

·        Il team dei personaggi e quello artistico tecnico hanno implementato il modello completo dell’armatura media dei marine per i personaggi femminili, quello della tuta pesante per fuorilegge ed ha fatto notevoli progressi nello sviluppo di molte altre risorse per i personaggi.

 

DIETRO LE QUINTE: LUCI ED OMBRE

TLDR

·        Nathan Dearsley, Chris Campbell, Emre Switzer, Maria Yue e Ben Parry parlano del lavoro svolto sull’illuminazione del gioco.

·        L’utilizzo di luci e colori nella maniera giusta permette di creare una progressione della storia continua e senza salti.

·        Il CryEngine così come era offriva degli ottimi strumenti e funzionalità per la creazione di ambienti esterni, ma era estremamente scomodo per la gestione delle luci interne.

·        La sfida definitiva: realizzare un sistema di illuminazione che, partendo da un ambiente delle dimensioni di un sottoscala, fosse in grado di scalare fino ad arrivare a coprire un’intera galassia.

·        Anche la potenza di illuminazione cambia in relazione alla scala delle dimensioni trattate: si va dalla lampada da tavolo fino alle stelle, per cui ci sono anche sfide legate all’auto esposizione della telecamera.

·        L’illuminazione deve essere dinamica: il sistema deve essere in grado di supportare anche quelle situazioni in cui tutte le luci di una stanza vengono fatte a pezzi.

·        Al momento si trovano a metà strada sul percorso verso il loro obiettivo finale: hanno aggiunto gli effetti anamorfici per i flare spaziali ed a breve implementeranno anche la generazione delle mappe volumetriche in tempo reale, mentre il vecchio modello delle stelle è stato completamente rimosso (un sole per controllarli tutti e, nel buio, illuminarli).

·        L’illuminazione planetaria viene completamente gestita dall’atmosfera del pianeta.

·        Il sistema di illuminazione gestisce anche aspetti come le gradazioni di colore e gli effetti postprocedurali, quali ad esempio la riduzione della saturazione che si verifica quando si viene feriti.

·        Tutte le luci delle navi sono dinamiche e fisicamente corrette al 100%.

·        Il lavoro compiuto sull’Illuminazione in collaborazione con il team di Design ha assicurato che il posizionamento e le chiamate sulle fonti di luce fossero corrette, come ad esempio quelle riguardanti l’evidenziazione di un pannello utilizzabile.

·        Il precedente sistema di luci “a strati” presentava alcuni problemi:

o   Le dimensioni dei file erano enormi per via delle migliaia di luci presenti (in gran parte inutilizzate)

o   Le luci potevano essere solo accese o spente: non si potevano effettuare transizioni o cicli di colori.

·        Con il nuovo Sistema dei Gruppi Luce:

o   Ogni stanza ha il suo stato di alimentazione e può essere abilitato o disabilitato.

o   I controller possono effettuare delle transizioni in risposta a determinati eventi, come ad esempio i danni.

·        Trovare il giusto bilanciamento tra luci interne ed esterne è una sfida.

·        L’illuminazione svolge un ruolo essenziale nel trasmettere le sensazioni e l’atmosfera di un ambiente.

·        L’illuminazione da coesione a tutti gli elementi in un certo ambiente, guida il giocatore e migliora il gameplay.

·        L’illuminazione influenza i VFX, in quanto le particelle non vengono illuminate sempre allo stesso modo: SC utilizza delle luci direzionali e delle mappe volumetriche, ma ci sono ancora delle modifiche da fare.

·        Ogni luce presenta tre elementi differenti: la potenza di emissione, le caratteristiche della luce e l’entità luce vera e propria.

·        La vecchia tecnologia della foschia presentava una serie di problematiche:

o   Non era in grado di reagire in alcun modo alle luci, per cui gli artisti dovevano ricorrere ad approssimazioni.

o   Le ombre erano troppo profonde ed appiattivano le scene.

o   Utilizzava un approccio estremamente semplicistico nella resa degli oggetti trasparenti.

·        Il nuovo sistema di foschia illuminata in maniera dinamica è stato integrato in Lumberyard:

o   Adesso le luci influenzano la foschia.

o   Vengono utilizzati i voxel per determinare il colore e la densità.

 

TRASCRIZIONE INTEGRALE

Emre Switzer (ES): Il mio nome è Emre Switzer, sono un Artista dell’Illuminazione qui alla Cloud Imperium Games.

Nahan Dearsley (ND): Salve, il mio nome è Nath, sono il Direttore Artistico dei Veicoli qui a Foundry 42.

Christopher Campbell (CC): Io sono Chris Campbel, Artista Capo dell’Illuminazione negli studi di Francoforte di Foundry 42.

Maria Yue (MY): Salve, il mio nome è Maria, sono un Artista dell’Illuminazione di Star Citizen.

Benjamin Parry (BJ): Io sono Ben, sono un Programmatore Grafico e, per abitudine, sono diventato il tizio della volumetrica e delle luci.

ND: Per me, l’illuminazione in generale è uno dei passaggi più importanti. A prescindere che si tratti di una nave, un’ambientazione o un pianeta, viene effettuato subito prima che l’elemento in questione venga rilasciato.

CC: Una pessima illuminazione può rendere terribili anche delle risorse di qualità, mentre un’ottima illuminazione può fare l’opposto con delle risorse terribili.

ND: Si possono avere delle risorse non conformi al livello qualitativo standard e le si possono illuminare bene. Non è questo il nostro caso: siamo parecchio fortunati e possiamo iniziare da materiali di qualità. Ma la base… Non è la torta: è la torta con la ciliegina sopra.

CC: L’illuminazione fornisce carattere ad una scena. Crea sensazioni di tristezza o felicità. Si possono utilizzare l’illuminazione ed i colori per creare una linea narrativa continua dall’inizio alla fine. Ad esempio, una storia può avere un inizio caldo e felice, ma può terminare in maniera fredda e triste. E tutto questo viene raccontato attraverso l’illuminazione.

ND: Abbiamo iniziato a lavorare utilizzando il CryEngine, che ora è diventato Lumberyard, parecchio tempo fa. E sia il motore che il gioco era incentrati sul fornire una certa tipologia di scenari, per cui già così come era presentava degli ottimi strumenti e funzionalità per la creazione di ambienti esterni. Disponeva di un sistema di sole/tempo del giorno. Gli interni, invece, non erano altrettanto buoni. C’erano delle pecche in molte aree – sicuramente si potevano ottenere degli ottimi risultati, ma utilizzarlo era scomodo e difficile.

ES: I sistemi di illuminazione erano pensati principalmente per livelli grandi e aperti, ma comunque “piccolini”, dalle dimensioni di circa quattro chilometri. Non prendeva in considerazione i mondi dinamici.

ND: Per cui negli anni abbiamo fatto del nostro meglio per modificare il motore e trasformarlo in qualcosa che fosse in grado di scalare a seconda delle necessità. Ed in questo caso, si intende scalare tra qualcosa delle dimensioni di un sottoscala ed un’intera galassia. Questa è la sfida definitiva.

CC: La scala delle dimensioni delle nostre luci è davvero interessante. Si va da fonti di luce come il sole, fino ad una piccola lampada decorativa da scrivania o cose del genere. Cerchiamo di impostare la potenza di queste luci in termini relativi. Per cui ovviamente il sole deve essere centinaia o migliaia di volte più potente di una piccola lampada da scrivania. E ciò crea delle domande interessanti per quanto riguarda il funzionamento di auto esposizione della telecamera. Parliamo delle sensazioni che vengono comunicate quando si passa da una piccola stanza scura ed un esterno intensamente illuminato, come la superficie di un pianeta o qualcosa del genere… Dobbiamo ricreare quella sensazione: la sensazione che ci sia una reale differenza di intensità tra quelle fonti di luce.

ES: L’idea di base, con Star Citizen, consiste nel darvi la possibilità di sparare letteralmente ad ogni singola luce presente nell’ambiente, e l’ambiente deve essere in grado di rispondere a questa tipologia di situazioni. Come è possibile realizzare qualcosa del genere utilizzando la tecnologia preesistente? Non potevamo, per cui abbiamo dovuto riscrivere e creare da zero tanti nuovi componenti. Attualmente in gioco ci sono tantissime variabili, ma la tecnologia non era in grado di supportarle, per cui molti degli elementi su cui ha lavorato il team Grafico erano pensati per permettere la realizzazione di questo genere di cose.

ND: Direi che al momento ci troviamo a metà strada. Abbiamo affrontato molti problemi differenti con tanti metodi diversi. Per esempio, mi pare che lo scorso anno abbiate visto l’implementazione della schermata anamorfica dei flare spaziali –  si trattava di un altro elemento collegato al sistema dell’illuminazione. Al momento, sono in dirittura di arrivo gli strumenti per la generazione in tempo reale delle mappe volumetriche. L‘intero sistema delle stelle che avevamo è andato – c’era un sole nella galassia che illuminava tutti i pianeti.

I ragazzi di Francoforte stanno ovviamente sviluppando gli strumenti planetari ed il sistema di illuminazione correlato a ciascuno di essi… O forse dovrei dire che lo stanno implementando all’interno degli strumenti planetari… Ma in ogni caso, si tratta di un qualcosa che verrà interamente controllato dall’atmosfera del pianeta. E dover lavorare su tutti questi enormi sistemi a volte può risultare piuttosto complicato per un artista, ma anche divertente.

CC: Utilizziamo l’illuminazione per creare un cambiamento anche nella componente fisica – come ad esempio nei personaggi dei giocatori – cosa che solitamente avviene non utilizzando le luci stesse, ma piuttosto la gradazione del colore o gli effetti postprocedurali sulla telecamera che, in genere, ricadono comunque all’interno del sistema di illuminazione. Per cui cambiare il colore dello schermo, desaturarlo o aggiungere maggior contrasto e cose del genere, sono anch’esse parte dell’illuminazione. Ad esempio, se il giocatore viene ferito, la gradazione del colore potrebbe causare una desaturazione dei toni, oppure potrebbe rendere il colore più vivido o cose del genere.

ND: Quando si parla invece delle navi, allora entrano in campo delle sfide sostanzialmente differenti. Tutte le luci nelle navi sono al 100% dinamiche e fisicamente corrette. Di conseguenza, abbiamo un sistema di rendering basato sulla fisica del gioco.

ES: In genere, si cerca di avere un qualche ciclo di feedback con l’artista per assicurarci che le luci siano posizionate nella maniera corretta, per assicurarci che anche all’interno di una nave piccola il vostro occhio si concentri su quegli elementi specifici che si vuole mettere in risalto. Se da qualche parte c’è una torretta, solitamente si vuole conoscere la sua posizione precisa: non deve essere nascosta nell’ombra. Per cui ci sono sicuramente degli elementi che vogliamo siano messi in risalto, ma il resto è anche il risultato di uno sforzo collettivo: si itera più volte l’ambiente, parlando e riparlando con i designer e gli artisti per assicurarsi che, se su una parete è presente un componente con cui si può interagire, questo sia segnalato a dovere. Magari potrebbe illuminarsi in caso di danni o cose del genere.

ND: In tutto questo, la sfida consiste nel fatto che, affinché sia possibile realizzare tutto ciò, bisogna avere gli strumenti adatti pronti all’uso. Fino a qualche settimana fa, invece, avevamo un sistema di strati. Si raggruppavano le luci all’interno di piccoli insiemi e le si attivava o disattivava una ad una in momenti differenti a seconda dello stato della nave – per cui se ci si trovava in una situazione di emergenza, lo stato di default veniva attivato… Spento, scusate… E si passava allo stato di emergenza.

Questo meccanismo funzionava bene, almeno in teoria, ma presentava tantissime problematiche. Innanzitutto, i file di Cry o Lumberyard finivano per diventare oscenamente grandi a causa delle migliaia di luci di cui, solitamente, i tre quarti rimanevano in genere spenti per la maggior parte del tempo.

E la transizione da uno stato all’altro poteva essere soltanto da on a off e viceversa. Per cui potevate ritrovarvi a camminare in giro per il mondo, ed entrando in una stanza potevate accenderne le luci, le quali però non potevano avere uno stile di accensione particolare, ad esempio non potevamo dare loro degli effetti di tremolio, o se erano a LED, non potevamo farle ciclare tra vari colori e temperature – abbiamo dei grafici di temperatura che utilizziamo all’interno del motore di gioco per assicurarci che i colori siano assolutamente corretti e che non si verifichino errori a riguardo. Di conseguenza, volevamo un sistema che fosse in grado di passare dallo stato attivo ad altri stati differenti in maniera estremamente creativa, a prescindere che si trattasse di stati di evacuazione, ausiliari o, semplicemente, di spegnimento.

ES: Adesso abbiamo il sistema di Raggruppamento delle Luci, per cui ogni stanza ha il suo stato di alimentazione. È quindi possibile entrare in una stanza, attivare o disabilitare l’energia di una stanza specifica, e poi… Quella stanza può subire dei danni e passare ad una condizione di emergenza.

ND: Il controller crea queste transizioni per me, in quanto è l’artista a controllare il tutto. Quando una nave A subisce un danno in un punto B, tutto ciò che si trova all’interno di quella zona inizia ad utilizzare questo sistema e, se lo vedrete in funzione, vi accorgerete che è piuttosto potente. Ciò dimostra quanto sia potente l’illuminazione, perché permette di cambiare in breve tempo un ambiente, passando da sensazioni molto blande e tranquille in qualcosa dal tono molto, molto aggressivo. Semplicemente utilizzando le luci e nient’altro.

CC: La sfida consiste nel trovare il giusto bilanciamento. Se i vari elementi sono sbilanciati, allora vi potreste sentire come quando lasciate una stanza troppo intensamente illuminata e, improvvisamente, il sole vi sembra molto poco luminoso. O viceversa, se è invece l’esterno ad essere davvero luminoso ed entrate in un ambiente poco o debolmente illuminato, questo vi sembrerà buio. Situazioni del genere non sono molto immersive e non aiutano il giocatore, perché non riesce a vedere ciò che sta succedendo attorno a lui.

ES: Credo che ogni singolo livello cerchi di comunicare un’atmosfera generale. Ci sono dei livelli che sono molto vibranti ed in cui vi sentirete i benvenuti, vorrete…  L’obiettivo del Direttore Artistico è di farvi sentire a casa. Sono posti tranquilli. E poi ci sono le situazioni opposto, come quando vi trovate in ambienti angoscianti, ed è… Posti tipo GrimHEX, dove vi dovreste guardare le spalle mentre entrate o uscite dalla stazione, giusto? Per cui i vari ambienti cercheranno sicuramente di comunicare delle sensazioni differenti, e la luce ricoprirà un ruolo importante.

Tutto parte da un concetto. Vengono buttate giù alcune idee, poi il team di Design definisce sommariamente l’ambientazione e raccoglie gli spunti per le forme e le sagome, oltre che quelli relative al gameplay ed al cammino che il giocatore potrà seguire. Successivamente, il team Artistico scende in campo ed inizia a definire i dettagli utilizzando tutti i nostri set di risorse modulari che, però, potrebbero non essere del tutto compatibili tra di loro. Quindi effettuano un passaggio di decalcomania ed uno delle risorse per cercare di assemblare il tutto. Ma sono le luci a dare davvero coesione a tutti questi elementi ed ambienti: mischiano tutte le varie risorse che abbiamo messo insieme e guidano il giocatore nella giusta direzione, oltre a migliorare il gameplay e, nel complesso, anche l’intera composizione del livello.

CC: L’illuminazione influenza molto anche… Influenza moltissimo gli effetti visivi, perché elementi come le particelle solitamente non vengono direttamente illuminate e non si comportano allo stesso modo delle forme geometriche. Loro… All’interno del nostro gioco, ricevono la luce direttamente dalle varie fonti di illuminazione ed anche dalle mappe volumetriche, che conferiscono loro la sensazione di illuminazione ambientale. Ma di solito non è sempre… Non hanno sempre lo stesso aspetto, cosa che invece potrebbe accadere con l’ambiente in generale. Per cui bisogna sempre effettuare varie operazioni di bilanciamento che richiedono tanta comunicazione e scambi di idee tra gli Artisti degli Effetti Visivi, i quali hanno il compito di modificare le particelle e fare in modo che siano illuminate allo stesso modo del resto del livello e viceversa. Inoltre, dobbiamo anche assicurarci di non creare delle situazioni in cui tutto risulti poco coeso.

MY: Quando iniziamo a lavorare su un’area, i suoi interni sono stati già rifiniti. Ovviamente per adesso è tutto buio. Il compito dell’Artista dell’Illuminazione, una volta illuminato l’ambiente, è quello di definire e raccontare lo spazio stesso. La maniera in cui illuminiamo un certo ambiente dipende sostanzialmente dall’atmosfera generale che gli vogliamo assegnare, la quale viene stabilita direttamente dal Direttore Artistico. Questo qui è un ottimo esempio di bozza definita dal nostro Direttore Artistico, nonché di configurazione di illuminazione di partenza, mentre questo è il risultato finale che cercheremo di raggiungere.

Dunque, in base a questo… Dal momento che abbiamo diverse tipologie di luci – ne abbiamo tre – la prima è una falsa fonte di luce che attiverà l’emissione di energia. Questa qui invece definisce le caratteristiche della luce, e per accenderla è necessario collegarla al generatore di energia. Per cui, una volta che avremo implementato questa funzionalità, ogni volta che qualcuno andrà ad accendere una luce, quest’ultima verrà generata in base a queste caratteristiche. A livello tecnico, quello che abbiamo fatto è stato collegare questa funzionalità di illuminazione, che controllerà la mappa di illuminazione della luce, e poi aggiungervi la luce vera e propria, che invece indica al motore il punto di origine dell’illuminazione.

Dopo aver terminato di configurare tutto questo spazio, cercheremo di applicare diversi toni di colore per definire il carattere dell’ambiente. Ed una volta rimossa la foschia e l’oscurità, si cerca di migliorare ulteriormente il carattere della stanza con l’aiuto del Direttore Artistico. Questo è più o meno l’approccio che seguiamo nel nostro lavoro.

Solitamente, una volta che ho terminato di occuparmi dell’illuminazione, faccio un test posizionando un personaggio nella stanza, perché i personaggi sono ovviamente una parte fondamentale del gioco. Questa fase consiste nel testare la configurazione e le caratteristiche delle luci facendo muovere il personaggio in giro per la stanza e verificando il comportamento delle luci, quali ombre andranno a proiettare e se la luce andrà ad illuminare correttamente il personaggio stesso, o se questo invece sarà poco visibile.

Inoltre, ci sono anche due diverse tipologie di configurazione dell’illuminazione. La prima è la luce fredda che viene proiettata dalle porte di uscita; è davvero fredda. In questi casi, devo posizionare qualche luce calda per assicurarmi che il personaggio venga sempre illuminato da toni caldi e freddi, che mescolandosi rendono il tutto più interessante.

CC: Ormai c’è un nuovo strumento di illuminazione… Probabilmente ogni settimana. Di recente abbiamo integrato il primo passaggio della nostra tecnologia di foschia illuminata, che sostanzialmente è una modifica della vecchia foschia, la quale era molto… Voglio dire, aveva profondità, ma sembrava anche piuttosto piatta quando si andava a renderizzare la scena, mentre questa nuova tecnologia ci permette di… Fornisce una sensazione direzionale sulla provenienza della luce e le fonti luminose possono effettivamente proiettare la luce sulla scena a partire da suo punto di origine.

BP: Al momento la vecchia foschia non reagisce molto alla luce, anzi non reagisce quasi per nulla. Per cui ogni volta doveva intervenire un artista che, una volta posizionata la foschia in una certa area, doveva poi impostare il suo colore e spessore, approssimando l’aspetto che questa avrebbe dovuto avere da illuminata. Un esempio di ciò potrebbe essere una luce rossa posizionata all’interno di una stanza, che probabilmente dovrebbe essere accompagnata da una foschia rossastra. In questo caso, l’artista dovrebbe cercare di comunicare l’impressione di una foschia biancastra molto sottile con una forte luce rossa sopra. Ma quando mettevamo una spessa foschia rossa e quindi le puntavamo addosso una luce rossa, il risultato era una foschia totalmente opaca e di un rosso profondo che, nel complesso, aveva un aspetto terribile.

Il meccanismo di funzionamento era il seguente: il sistema creava sullo schermo un grosso volume e, dal momento che sapeva con esattezza la profondità dell’oggetto opaco in relazione alle dimensioni della scena, poteva stabilire quanta foschia avrebbe dovuto visualizzare sul posto.

Tuttavia, questo approccio risentiva di alcuni problemi.

Ad esempio, era evidente che le ombre tendevano ad essere troppo forti, appiattendo così l’intera scena. L’altro problema si riscontrava quando si aggiungevano più luci: la scena si illuminava maggiormente, ma in compenso la foschia conservava quel colore giallino che era stato definito in precedenza.

Un altro problema che abbiamo riscontrato era il seguente: se prendeva questa sfera trasparente priva di qualsiasi informazione sulla profondità e le applicavo sopra della foschia, il vecchio sistema, a livello di CPU, si limitava ad utilizzare un approccio estremamente semplicistico che calcolava… Quanta foschia fosse presente al centro della sfera, per poi applicarvela. Di conseguenza, se ingrandivo un poco e poi sollevavo la visuale, si poteva vedere come la visuale rimanesse offuscata anche quando si era parzialmente fuori dalla sfera e, nel momento in cui se ne usciva del tutto, la foschia semplicemente scompariva.

Questi problemi erano in buona parte compensabili, ma spesso si riscontravano problemi con le navi, o qualsiasi altra cosa fosse dotata di un grosso abitacolo, che improvvisamente… Tutto… L’intero abitacolo diventava improvvisamente opaco, come se al suo interno ci fosse della foschia.

ND: Adesso, invece, abbiamo un sistema di foschia dinamica che utilizza particelle dinamiche, e quando viene illuminato il risultato è fantastico. Sono noto per essere un po’ troppo entusiasta della foschia e delle particelle in generale, in realtà è il secondo elemento su cui metto le mani non appena inizio a lavorare ad un livello: grazie al nuovo sistema, è possibile ottenere automaticamente l’informazione della profondità, la sensazione comunicata da questa, ed in generale è incredibilmente potente. Supporta tutto il duro lavoro che i ragazzi dell’illuminazione hanno svolto sui livelli.

[La stanza si riempie di fumo]

Ed è intenso. Davvero intenso.

BP: Possiamo vedere come le luci siano in grado di influenzare la nuova foschia. Qui sullo schermo potete vedere una fonte luminosa che viene proiettata su di essa. E la cosa interessante di tutto questo, andando al sodo, è il fatto che è possibile… Si possono vedere nitidamente queste zone di ombra che influenzano la resa della foschia.

Al momento stiamo reintegrando nel motore di gioco questa tecnologia proveniente direttamente da Lumberyard. Ci stiamo ancora lavorando, ma passando alla modalità di debug posso mostrarvi come funziona.

Allora, questa è soltanto una striscia orizzontale che abbiamo preso dalle texture che utilizziamo. Si tratta di una texture volumetrica che, al momento, è circa un quinto della risoluzione dello schermo ed è costituita da 64 strisce. I campioni sono tutti orientati verso lo spettatore – in questo modo si possono vedere più dettagli – soltanto perché la telecamera amplia… Il vostro campo visivo si amplia con l’aumentare della distanza, per cui lo stesso quantitativo… Lo stesso numero di suddivisioni è distribuito su un numero di metri di gran lunga superiore all’aumentare della distanza.

Ma come potete vedere, questo volume rettangolare è stato inserito all’interno della texture volumetrica. Il sistema non si preoccupa di inserirlo qui, perché sa che lì c’è un oggetto opaco e quindi non ha bisogno di sapere quali valori utilizzare in quel punto. Si tratta soltanto di un’ottimizzazione. In questo punto sono state inserite solo le informazioni relative alla densità ed al colore.

Fatto questo, applichiamo un secondo passaggio che riguarda tutte le luci di una scena – e stiamo parlando soltanto di un singolo thread del…. Un calcolo degli shader viene effettuato per ogni voxel di questo volume. Per cui raccogliamo tutte le luci presenti sulla scena all’interno di una seconda texture e le accresciamo aggiungendo anche i parametri di densità ed opacità del volume. In realtà da qui non lo si potrebbe dire, ma questo sistema tiene conto dell’angolo della vostra visuale. È qualcosa di simile alla diffrazione di un raggio luminoso diretto verso la telecamera, per cui penso che probabilmente non lo possiate vedere da questa immagine, ma la luce cambierà leggermente forma, o forse no, ma da qui potrete vedere come questo blocco nero sta proiettando la sua ombra dalla luce principale e tuttavia riceve comunque la luce blu proiettata dal fianco.

Il passaggio successivo consiste nell’inserire un piccolo effetto di blurring, mentre quello dopo è più interessante. Quella che vedete qui è una matrice di raggio che è stata applicata all’intero volume di spazio. A questo punto, per poter applicare la foschia ad un certo oggetto, il sistema deve leggere soltanto un singolo punto della sua texture prima di sapere esattamente quanta foschia esso necessiti ad una certa distanza. Per cui è possibile vedere la foschia fin da davanti l’oggetto, ma andando avanti si noterà come questa sia omogenea e costante in ogni punto, proprio perché ormai l’oggetto è diventato opaco.

Il vantaggio di questo approccio consiste nel fatto che, mentre con la vecchia trasparenza bisognava soltanto stabilire per un singolo oggetto di quanta foschia in generale avesse bisogno, in quest’altro modo ogni pixel può semplicemente leggere l’informazione da questa texture e vedere quanta foschia dovrebbe avere davanti, per cui non si riscontreranno più i problemi citati in precedenza.

Se torniamo a questa schermata, possiamo anche vedere un altro elemento interessante di questo approccio. Allora, questo strumento qui adesso sta calcolando la funzione di rumore per poi applicarla direttamente alla foschia, per cui potete vedere come la foschia stessa risulti irregolare, variabile, e come l’effetto particellare sembri muoversi lentamente all’interno della superficie. Ma se tolgo la modalità di debug, potrete vedere che c’è una maggiore ricchezza e complessità di resa dell’effetto particellare, cosa che permette di lavorare maggiormente con la scena, renderla più interessante e conferirle una maggiore varietà.

Per passare al nuovo sistema dovremo sostanzialmente scegliere una data in cui ogni singolo volume della vecchia foschia ancora presente nel gioco smetterà di funzionare e dovremo sostituirli con il sistema nuovo. Per cui si tratta soltanto di implementare del tutto questa tecnologia e portarla un livello tale da potercene ritenere soddisfatti, evitando di dover cambiare in un secondo momento qualcuno dei parametri ad essa associati, cosa che potrebbe causare delle grosse variazioni, ad esempio, nella densità della foschia. Arrivati a questo punto, i team Ambientali e delle Navi dovranno andare a rivedere ogni singolo elemento che fa uso dei volumi di foschia ed assicurarsi che abbia un bell’aspetto, oppure cancellarlo o sostituirlo in caso contrario, e dovranno controllare che le luci proiettate sulla foschia non mostrino nulla di strano o sospetto a livello di configurazione e cose del genere.

CC: Questo nuovo sistema sostanzialmente sostituisce del tutto la vecchia tecnologia della foschia. Ed ha un aspetto migliore sotto tutti i punti di vista.

BP: Lo stiamo integrando prendendolo dall’ultimo rilascio di Lumberyard che abbiamo ricevuto. Gran parte del lavoro di cui mi sto attualmente occupando consiste nello spostare questa tecnologia ed integrarla in tutto ciò che abbiamo modificato nella nostra copia del motore. Si tratta perlopiù di elementi minori, come ad esempio l’algoritmo che stabilisce la posizione in cui il sole proietta le ombre, il quale è stato leggermente modificato per renderlo più efficiente, ma ovviamente il nuovo codice proviene da un sistema privo di queste ottimizzazioni, per cui dobbiamo aggiornarlo, scoprire da dove vengano i vari parametri, assicurarci che il tutto venga comunicato nella maniera corretta e scovare i bug causati dalle differenze esistenti tra i due sistemi.

ES: La foschia farà un’enorme differenza, soprattutto nello spazio. I ragazzi del team della Grafica degli UK stanno cercando di creare un sistema di foschia unificato, così che ne beneficino anche le cinture di asteroidi e qualsiasi altro ammasso di semplici e monotone rocce galleggianti nello spazio. Dato che nello vuoto siderale ci sono tonnellate di particelle di ghiaccio e di roccia, potremo inserire un mare di particelle di polvere galleggianti che creeranno nuovi volumi. Andando avanti, uno dei nostri obiettivi consisterà nel rendere più vivo lo spazio stesso, fare in modo che ci sia materia un po’ ovunque, come ad esempio il particolato attraverso cui potreste passare quando attraverserete una cintura di asteroidi, e questo stesso particolato verrà generato e gestito dal sistema della foschia. Per cui questo sistema sarà qualcosa di enorme.

ND: Una volta implementato nel motore di gioco, sarà incredibilmente figo. Sarà possibile creare un senso di profondità utilizzando soltanto la foschia e, non appena introdurremo le luci dinamiche che reagiranno a questa foschia, che solitamente è un effetto su cui un artista dovrebbe investire tantissimo tempo per ricrearlo a mano, diventerà uno strumento incredibilmente potente. Ci aiuterà a guidare i giocatori per l’universo sfruttando il senso di profondità della telecamera così ottenuto. A volte può capitare di non vedere qualcosa e la mente tende ad inventare… E per questo motivo, tale tecnologia è ben più efficace che utilizzare delle risorse sceniche dalle forme forti. Credo che questo approccio sia davvero interessante ed utile.

MY: La foschia era su un altro livello, per cui di default risultava essere molto intensa. Tutto dipende dalla tipologia di elementi su cui si sta lavorando. Ad esempio, questa che vi sto mostrando ora è la configurazione di default: si presenta come una sorta di volume, ma se attivo la foschia, la luce ne sarà diffratta. Per cui dipende molto dalla situazione: ci sono design in cui la foschia può essere causata o provenire da un qualche componente malfunzionante o danneggiato. Solitamente, gli effetti di foschia vengono inseriti nei punti più luminosi. Vedete, qui abbiamo una fonte di luce al livello del pavimento e poi c’è una finestra, e la luce arriva fino a qui. Quando mi occupo di questi elementi, cerco di progettare ed inserire la foschia in maniera tale che sia allineata con la direzione di origine della luce. Qui c’è una finestra, per questo la foschia è stata posizionata in questa direzione.

Questa è la fonte di illuminazione vera e propria e, come già mostrato prima, se l’accendo tutto prende vita. Dal punto di vista dell’illuminazione, il senso di tutto questo è di realizzare qualcosa che sia consistente con la fonte di illuminazione improvvisata e con quella reale per definire meglio questo spazio e l’effetto foschia.

ND: È una tecnologia completamente nuova ed è qualcosa che abbiamo introdotto proprio questa settimana, per cui stiamo cercando di scalarla e di renderla in grado di gestire volumi sempre più grandi. È un ottimo riferimento, dobbiamo ringraziare i ragazzi, ma ovviamente ci dobbiamo assicurare che il sistema sia anche in grado di funzionare con la scala di una nebulosa, che è più grande di un sistema solare.

CC: Sono davvero entusiasta di questa tecnologia di illuminazione della foschia. È qualcosa con cui gioco da anni e vedere quanto migliori l’atmosfera di una zona mi affascina sempre. Rende le cose, e le zone, più definite e conferisce davvero la sensazione di trovarsi in questo spazio. Ricevo una nuova build ogni giorno e c’è sempre qualche novità che introduce dei nuovi valori con cui posso giocare per rendere le cose più interessanti. Poter vedere questo genere di cose è davvero entusiasmante.

ND: Wow.

Traduzione a cura di Darnos.
Trascrizione originale completa disponibile presso Relay.
Articolo originale disponibile presso le Roberts Space Industries.