Una volta rientrato a casa e potendo disporre di un hardware più performante (leggi il DevLog precedente) e la conseguente possibilità di utilizzare più o meno agilmente la 3D view in modalità rendering, ho potuto iniziare a lavorare su alcuni aspetti grafici sicuramente non necessari in questo momento ma... piacevoli. Per iniziare a dare un'idea, un senso di quello che potrebbe essere l'aspetto finale del trailer ho iniziato a concentrarmi sui dettagli, focalizzandomi sulla resa realistica dell'immagine, delle inquadrature, della scena.
Ho giocato un po' con i parametri di profondità di campo della telecamera e del motion blur nel motore di rendering. I risultati per ora sono tutt'altro che soddisfacenti ma come mi aspettavo ci sarà sicuramente da dedicare del tempo anche a questi aspetti soprattutto per capire bene le meccaniche di funzionamento al fine di ottenere il miglior risultato possibile.
Un problema decisamente più “ostico” è quello delle luci, perché come già accennato in un episodio precedente (vedi DevLog relativo al setup delle luci) la scena attuale è illuminata da due fonti: la prima è una mappa ambiente HDR e la seconda una luce di tipo sole.
Entrambi le fonti di luce ci hanno dato problemi fin dall'inizio nel tentativo di ricreare una illuminazione realistica.
Per sviscerare il problema è bene concentrarsi su una sola delle due fonti di luce alla volta.
La luce diffusa
Per cercare di ottenere una luce ambiente diffusa (potremmo definirla global illumination che in Eevee non è presente) abbiamo utilizzato inizialmente una mappa ambiente HDR che tuttavia ha dimostrato di funzionare in modo completamente differente rispetto a come ci saremmo aspettati basandoci sulle nostre esperienze con Cycles.
In pratica in Eevee sembra che la luce irradiata dall'ambiente tramite la mappa HDR attraversi gli oggetti senza essere ostacolata da ciò che incontra lungo il cammino, illuminando tutto ciò che è presente nella scena. Per questo motivo si generano una serie di strani fenomeni di luminescenza in zone dove tipicamente dovrebbe esserci una maggior concentrazione di ombre.
Questo fenomeno risulta ulteriormente accentuato e visibile se si attiva l'opzione ambient occlusion di Eevee. Si nota facilmente che il comportamento della luce non sia quello previsto, nonostante ci si aspetti luce solo dalle uniche aperture nell'involucro della stanza di fatto anche angoli più nascosti e che dovrebbero essere in ombra risultano invece illuminati.
Inizialmente per risolvere il problema e trovare un buon compromesso che ci ha permesso comunque di arrivare fino a questo momento con dei render soddisfacenti, abbiamo utilizzato semplicemente una mappa HDR di interni invece che di esterni, perché una volta consapevoli che il contributo di luce della mappa ambientale viene proiettato direttamente all'interno dei locali passando attraverso i muri non avrebbe senso utilizzare una mappa da esterni, piuttosto una mappa in grado di simulare al meglio stesse condizioni di luce interna potrebbe fare esattamente al caso nostro.
Giunti a questo punto ho voluto spingermi un po’ oltre per cercare di migliorare ulteriormente il contributo della luce ambiente e quindi di ottenere un realismo maggiore. Ho cercato di apportare alcune modifiche simulando un po' meglio quello che dovrebbe essere il comportamento reale della luce: ho rimosso la mappa ambiente HDR e ho introdotto in corrispondenza delle finestre delle area lights ossia delle luci ad area.
Queste luci sono state dimensionate leggermente più grandi dell'apertura delle finestre e posizionate all'esterno della muratura, inclinate leggermente verso il basso per aumentare il contributo verso il pavimento e ridurre quello verso il soffitto, come se la luce provenisse effettivamente dal cielo.
La potenza di queste luci è stata al ridotta notevolmente perché lo scopo è quello di fornire solo ed esclusivamente il contributo della luce ambiente, quindi cercando di fornire il massimo contributo di luce diffusa e una luce diretta non troppo invadente. I primi rendering di prova ci sono sembrati effettivamente un buon risultato finale per cui abbiamo deciso di adottare questo sistema invece del precedente.
Il sole
Per quanto riguarda il sole volevamo ricreare una macchia di luce sul piano di lavoro della cucina, perché conferisce un aspetto gradevole all'intera scena magari abbinato anche un leggero effetto di bloom.
Fin dall'inizio dopo aver aggiunto una luce di tipo sole e averla orientata come desiderato siamo rimasti molto soddisfatti dell'effetto visivo, tuttavia la scena si è popolata di una serie di artefatti grafici luminosi che non siamo stati in grado di spiegarci né di rimuovere fino a questo momento.
Per provare ad aggirare questo tipo di problematica ho inizialmente deciso di sostituire la luce del sole con una luce di tipo spot ossia un faretto. Non sapendo a cosa fossero dovuti gli artefatti e avendo sperimentato in questi mesi di lavoro con Eevee vari fenomeni a volte legati al motore stesso, a volte dovuti a bachi, a volte alla nostra errata interpretazione dei parametri, ho pensato che il problema potesse essere intrinseco all’utilizzo del tipo di luce “sole” in relazione al tipo di motore di rendering Eevee ed alla geometria della scena. Quindi cambiare il tipo di sorgente luminosa mi è sembrata la cosa più semplice da fare per aggirare l’ostacolo. Ho posto lo spot ad una buona distanza dall'edificio con il fascio di luce concentrato solo sull'apertura delle finestre per avvicinarmi più possibile alla luce “parallela” tipica del sole.
Inizialmente il risultato sembrava buono o quantomeno gli sforzi sembravano andare nella giusta direzione, anche se le ombre proiettate dal faretto risultavano un po' troppo indefinite pur avendo ridotto al minimo le soft-shadows nella impostazioni del faretto e disattivato le soft-shadows nelle impostazioni di Eevee. Ma la cosa che ancora non mi dava la giusta soddisfazione era l'intensità luminosa del faretto decisamente inadeguata rispetto a quella precedente del sole.
Sorprendentemente nel momento in cui ho alzato di molto la potenza luminosa del faretto si sono generati gli stessi artefatti negli stessi posti in cui erano generati dalla luce del sole, solo dai contorni vagamente differenti.
A questo punto non sapendo che pesci pigliare sono tornato alla luce di tipo sole per via della maggiore semplicità nelle impostazioni, dopodiché per puro caso una sera giocando con i parametri ho scoperto che lavorando sul parametro di bias era possibile far scomparire quasi del tutto gli artefatti in questione.
Confesso di non avere la più pallida idea del perché sia successo e di non aver speso troppo tempo a indagare mi sono limitato a essere soddisfatto della nuova configurazione e insoddisfatto della mia incompetenza, ma forte della ondata di entusiasmo conferita da un setup delle luci finalmente soddisfacente sono passato al capitolo successivo.