3D Artist: Francesco Furneri
Making Of: Crocodile Project, Lighting & Rendering (seconda parte)
Software: Maya,  Zbrush, Substance Painter, Arnold e Marmoset Toolbag

Project Link: https://www.artstation.com/artwork/oA006W

Salve a tutti e bentornati a questa seconda e ultima parte dedicata al progetto Crocodile.
Rimando alla prima parte di questo progetto che potete trovare a questo indirizzo:

https://www.treddi.com/cms/making-of/crocodile-project-texturing-prima-parte/4927/

Nella prima parte è stato descritto il workflow che ho impiegato per la produzione delle textures in Substance Painter.
In questa nuova parte, vedremo alcuni aspetti legati al lighting e al rendering: come al solito vi darò alcuni spunti, consigli e idee per poter pianificare al meglio il proprio lavoro e per comprendere alcuni concetti chiave durante la resa di una scena.

Per chi ancora non mi conoscesse, mi chiamo Francesco Furneri e sono un 3D Artist con più di 10 anni di esperienza nell'ambito della computer graphics e specializzato in modellazione e texturing.
Ho lavorato in aziende come modeler, rivestendo in alcuni casi il ruolo di technical artist e mi occupo di texturing e rendering presso l'azienda dove attualmente lavoro.
In parallelo, svolgo l'attività da freelancer per aziende negli States, principalmente in merito alla modellazione organica di 3D characters e di texturizzazione di props.

Ringrazio il reparto tecnico di treddi.com per avermi dato la possibilità di condividere con voi questo articolo e spero che troviate la mia spiegazione utile per i vostri progetti.

Introduzione - L'importanza del Sampling


Il lighting, così come il rendering, rappresentano le ultime fasi nel processo di creazione di una scena 3D e sono step fortemente connessi tra loro: con questo si intende, ad esempio, che la presenza di fonti d'illuminazione, così come il loro settaggio incide sui tempi di render.
Anche la presenza di un environment map (ad esempio una texture HDR usata come contributo di luce ambientale), inciderà  più o meno sui tempi di resa.

Nel rendering, il campionamento (sampling), rappresenta uno dei concetti chiave che si dovrebbe imparare fin da subito: cerchiamo di capire assieme cosa significa tutto questo in termini di rendering di una scena 3D.

Farò riferimento in linea generale e poi più avanti introdurrò Arnold per maya cercando di spiegare in termini semplici i concetti base, per poi arrivare a parlare nello specifico del progetto in questione. I principi spiegati sono indipendenti dal software ma in questo caso mi riferirò ad Arnold in quanto il progetto è stato sviluppo con esso.

Arnold è un motore di rendering fotorealistico basato sul Path tracing che altro non è che un'evoluzione più accurata del noto algoritmo di Ray tracing, 
Nel Ray tracing, per calcolare l'illuminazione di una scena si parte dal punto di vista della camera (all'inverso) e si tracciano una serie di raggi diretti verso gli oggetti (View Rays). Quando un raggio colpisce un oggetto può essere riflesso, rifratto e un Shadow Ray viene sempre usato per determinare se il punto in questione vede la sorgente (Light Source) oppure è in ombra. Il processo si arresta dopo una serie di rimbalzi decisi dall'algoritmo.

Nel primo esempio qui sotto non ci sono raggi riflessi o rifratti ma solo i punti che vedono la luce (i primi 2 raggi in alto) e il punto in ombra che non viene illuminato.
La griglia (Image) la si può immaginare come il nostro screen dove gli oggetti di scena vengono proiettati: per i primi 2 punti in alto si calcola l'illuminazione diretta  (attraverso tecniche di shading) nel punto di intersezione del raggio con la geometria e il valore calcolato viene proiettato indietro verso griglia . Il terzo raggio non vede la luce e quindi restituirà un valore in ombra.

3220c0ce39c98fef21016c7d7f915af5.jpg

Partire dalla camera, anzichè iniziare a calcolare i raggi provenienti dalle Light Sources velocizza la computazione in quanto elimina raggi che, dal punto di vista della camera, non vedremo mai (ad esempio dietro la sfera ammesso che la sfera sia opaca).
Per semplificare ci siamo fermati all'illuminazione diretta, senza considerare i rimbalzi della luce, ma nella realtà occorre inseguire questi raggi che riflettono più volte nell'ambiente o, se il materiale è semi trasparente, possono anche determinare raggi rifratti: se ci fermiamo all'illuminazione diretta, parliamo più nello specifico di Ray Casting, mentre se calcoliamo i rimbalzi parliamo più in generale di Ray tracing e di Global Illumination.


Ma perchè tutto questo?


Semplicemente per farvi capire che Il numero di raggi che partono dalla camera verso la scena, determinano un numero di campioni (sample): per dirla semplice, più fitta è la griglia con più raggi e più campioni dovrò considerare sulla scena; questo si traduce in una resa più accurata e con un antialiasing migliore (in quanto ho più informazione da trattare) ma a scapito di tempi più lunghi di calcolo.

Vedete di seguito un caso più completo di Ray tracing ricorsivo, in quanto in genere si stabilisce un numero limite di rimbalzi.

301c512c851f19909f7beaf049ffa6ce.jpg

Come vedete, nell'immagine sopra,  il valore sulla griglia è il risultato dell'illuminazione diretta della sorgente più il contributo di tutti i raggi secondari di riflessione e rifrazione. Anche in questo caso, consideriamo il contributo dei raggi ombra.
I campioni legati alla griglia vengono chiamati Camera Samples perchè per l'appunto sono definiti a partire dalla camera: questi sono i campioni più importanti (anche perchè responsabili per calcolare l'antiasliasing) ma negli algoritmi di rendering più evoluti si tengono in conto anche altre tipologie di campioni.

Arriviamo quindi a parlare del Path tracing presente in Arnold.
Come base sfrutta le caratteristiche del Ray tracing ma con miglioramenti e calcoli più accurati, introducendo algoritmi per l'inter riflessione indiretta diffusa tra superfici e non solo la riflessione speculare come capita nel Ray tracing di base.
Spieghiamo il tutto con un esempio illustrativo ripreso direttamente dalla guida di Arnold.

Si consideri un'ipotetica sorgente di luce che proviene da in alto a sinistra rispetto alla camera e che proietti un'ombra come in figura. Eventualmente si consideri anche una luce ambientale (sky) che illumina a 360° la scena.
Con il Path tracing si suppone che dai punti di intersezione dei camera rays con la sfera si generino altri raggi, per avere un contributo di  riflessione diffusa tra le superfici: in particolare, per ogni punto si tracciano n raggi che  "osservano" l'illuminazione circostante, raccolgono le informazioni di luminosità, crominanza, etc restituendo al punto un valore finale.
Questi campioni in Arnold vengono chiamati Diffuse Samples e sono calcolati attraverso i diffuse rays per ogni punto della superficie: tengono in conto la riflessione indiretta per il particolare punto in esame.

8bcb3d09c145ecce287d466842e9f188.png

Perchè è importante conoscere il significato dei Diffuse Sample?


Vogliamo calcolare l'illuminazione dei punti presenti sulla sfera sulla base di ciò che sta attorno.
Si immagini di avere la stessa sfera circondata da più oggetti, alcuni dei quali hanno colori molto saturi e dissimili tra di loro. Tracciamo quindi sulla sfera dei Camera Rays e per ogni camera ray si considerino n raggi che partono da esso(indirect diffuse rays). Essendo questi raggi generati secondo algoritmi di Montecarlo, il calcolo finale del valore stimato per il punto in esame (campione di camera ray)  è il contributo di tutti questi raggi che partono da esso e tracciati in maniera random.
Quindi ad esempio, da un punto specifico sulla sfera (chiamiamolo A), vengono tracciati alcuni indirect diffuse rays che campionano un oggetto rosso, altri un oggetto blu vicino e altri ancora un oggetto verde: il valore ritornato ad A avrà un colore che è il contributo di tutti questi campioni calcolati.
Adesso, se prendiamo un altro punto vicino sulla sfera (chiamiamolo B)  e tracciamo altri indirect diffuse rays, alcuni di questi raggi (essendo random) potrebbero campionare di più l'oggetto rosso piuttosto che quello blu, ritornando un valore per B visivamente diverso da quello per A.

Se valori di luminosità adiacenti e vicini sono tanto diversi tra di loro si incorre in quello che si chiama sample noise ossia rumore aggiunto legato al campionamento: l'aspetto è quello di una certa granulosità nell'immagine.
Ovviamente si tratta di una condizione non voluta e per ridurre questo rumore occorre aumentare il numero di indirect diffuse rays per ciascun punto. In questo modo abbiamo più probabilità di uniformare l'illuminazione perchè abbiamo più campioni tracciati per punto.

Ecco perchè in Arnold occorre aumentare il valore di Diffuse Sample proprio per evitare di avere dei render con presenza di noise.

In Arnold, l'interfaccia per modificare il numero di raggi indiretti diffusi è molto semplice.

Nell'esempio il valore Camera (AA) di 3 indica che ciascun pixel è suddiviso in 9 subpixel (3^2) che sarebbero i nostri 9 camera rays che vengono tracciati sulla griglia.
Diffuse  2, significa che da ciascuna intersezione dei camera rays con la geometria, dipartono 4 raggi indiretti (2^2), per un totale di  36 raggi per pixel (9 x 4).

Come si può osservare, il calcolo viene effettuato sui subpixel che sono i campioni, mentre il risultato finale sulla griglia sarà il singolo pixel calcolato con tecniche di Antialiasing e filtering.

E' sbagliato dichiarare che sample è sinonimo di Pixel perchè nei calcoli di solito, il pixel contiene n sample per poter avere infine un calcolo più preciso e meno effetti di aliasing.

cc3856ae6f17705ddfb685f5a2a65968.jpg

Su questa parte mi fermo qui, sperando che vi serva come guida per capire di più sul campionamento e per gestire questi parametri relativamente ad una scena.
Gli altri parametri di Arnold (Specular, Transmission, SSS, etc...) si basano sulla stessa logica di campionamento spiegata fino ad ora ma considerando altri tipi di raggi tracciati e di fenomeni correlati, quali la riflessione speculare indiretta, la trasmissione indiretta, il SubSurface scattering, etc...
Ricordo inoltre come esistano anche i Light Samples che servono per migliorare principalmente la qualità delle riflessioni speculari dirette e della qualità delle soft shadows. Nell'interfaccia di cui sopra, il totale dei raggi non riporta i light Samples, che sono calcolati a parte - Total (no lights).
Per una spiegazione completa rimando alla guida sul campionamento di Arnold: https://docs.arnoldrenderer.com/display/A5AFMUG/Samples

Osservazioni pratiche:

  • Aumentare il numero di campioni, dilata i tempi di resa ma migliora l'aspetto dell'illuminazione;
  • I valori di campionatura da stabilire dipendono dal tipo di scena trattata e dai materiali in essa presenti: se ho oggetti poco riflettenti e lontani dalla camera posso permettermi di avere un numero più basso di campioni per l'opzione Specular . Se non ho oggetti translucenti,  non ha senso settare i campioni per l'opzione SSS.
  • In Arnold esiste inoltre la possibilità di sfruttare l'adaptive sampling che riduce o aumenta il numero di camera rays da calcolare sulla base di una soglia del rumore prestabilita dall'utente: valori bassi di soglia significano meno tolleranza al rumore e quindi aggiunta di più sample al pixel.
  • Per stabilire il numero di rimbalzi di luce da considerare nella scena avvalersi della parte di Ray Depth di Arnold e il consiglio è quello di mantenere i valori di default per la maggior parte delle scene. Per  situazioni quali interni, con molti dettagli, è consigliabile aumentare i valori di diffuse, specular, transmission per avere più rimbalzi e più accuratezza.

c19df6014c6d883b1805aecb950340f2.jpg

  • Da un po' di tempo a questa parte si sta dando importanza ad Arnold anche in termini di GPU. Per chi sfruttasse la GPU, si ricorda come nel sampling la gestione sia più intuitiva. Rimane attiva solamente l'opzione di camera (AA), mentre il resto non è più gestibile manualmente: è consigliato sfruttare invece l'adaptive sampling secondo i settaggi riportati sulla guida ufficiale.


Tutto nasce dal mood


Prima di inserire luci in una scena, cerco di pensare al risultato da ottenere in termini di mood: per mood si intende l'atmosfera, la sensazione che si vuole trasmettere a chi osserva da vicino un render.
Non sempre è facile immaginare il risultato finale ma esistono schemi di illluminazione noti che vengono in aiuto per indirizzarci verso la strada giusta.

Si pensi ad esempio ad uno schema a 1 punto luce (1 point lighting), dove la sola sorgente luminosa (key light) cattura il soggetto, da una certa angolazione, in modo da rendere più drammatica la scena.
Per contro vi sono altri schemi come quello a 3 punti luce (3 point lighting), dove una sorgente principale illumina il soggetto, una fill light di riempimento schiarisce le aree più scure e una rim light enfatizza i bordi del soggetto staccandolo dal background. Questi schemi descritti si possono applicare a diverse situazioni e si notano spesso nei render di personaggi e ritratti ma non solo.

Esiste inoltre l'illuminazione ambientale più naturale (Naturalistic lighting) dove si studia il tipo di atmosfera da ottenere, molte volte sfruttando diverse sorgenti di luce per creare contrasti, marcare di più certe aree, attirare l'attenzione in parti della scena etc.. ma tutto dipende dallo stile che si vuole adottare.
C'è quindi molta libertà, non essendoci delle regole rigide, ma è buona norma partire da alcuni schemi semplici di illuminazione, per poi affinare incrementalmente il risultato.

Citiamo un semplice esempio prima di passare al caso pratico del coccodrillo.

Se mi venisse richiesto di rappresentare un cavaliere, mettendo in luce i dettagli dell'armatura, senza però avere un ambiente 3D modellato, potrei essere portato ad adottare uno schema di illuminazione che parte da un HDRI a 360 gradi (questo mi servirebbe per avere delle riflessioni interessanti sull'armatura metallica).
Da quel punto in poi posso affinare il risultato, aggiungendo riflessioni speculari (anche fake) in aree dove voglio mostrare l'usura o la roughness di certe componenti, così come directional lights per dare importanza ad un' eventuale luce dominante nella scena. Questo per farvi capire che si comincia dalla base per poi arrivare ai dettagli.

A titolo d'esempio, nel render di un altro mio progetto,  si vede chiaramente l'uso di una key light principale (proveniente da in alto a destra), per  creare più contrasto con le altre parti illuminate da una environment map più morbida. In questo caso, sono partito dalla luce ambientale, per poi affinare il risultato con la key light direzionale e con l'aggiunta di effetti volumetrici sulla parte superiore destra della scena e sulla parte bassa (fog).
L' intento era di suggerire qualcosa di leggermente fantasy e dal tocco medieval, avendo unicamente il modello e non l'ambiente 3D.

08d6928506389c38448813a77e713eda.jpg

In questo altro render, ho mantenuto lo stesso contributo di luce ambientale (environment map) inserendo una luce morbida frontale (più soft) per alcuni dettagli sulla pietra e una luce posteriore (più fredda) che rimarcasse la struttura circolare del pozzo, mostrando anche in basso un graduale passaggio tra tinte più calde a tinte più fredde.
Questo schema contempla una luce frontale, una luce ambientale e una luce posteriore che funge un po' da rim light e genera un interessante e graduale passaggio tra fronte e retro del basamento.

Potete vedere più render del progetto alla mia pagina Artstation: https://www.artstation.com/artwork/b8wYn

5a3128b61109f09d12e5833d13ab5739.jpg


Crocodile Project - Schemi di illuminazione


Siamo giunti ora a parlare di come sono stati studiati i render del progetto.

Il primo render che vi mostro segue uno schema che si rifà a quello del white box lighting: praticamente si tratta di uno schema usato per illuminare il soggetto da 3 direzioni distinte (alto, destra e sinistra), con lo scopo di mettere in evidenza ogni parte di esso.

Viene impiegato per la presentazione di dettagli senza aggiungere drammaticità o alto contrasto tra le parti. Come si vede, tutte le aree sono illuminate uniformemente ad eccezione ovviamente delle aree occluse come le gambe e l'interno della bocca.
Questo schema di luci può essere riprodotto in studio attraverso l'aggiunta di soft box che producono ombre morbide (nel programma si tratta di area lights).
Lo scopo di partenza è stato quello di avere un render che mostrasse tutti i dettagli da poter utilizzare come showcase, prima di passare a mood diversi.

a22f906700efadff591dec79996dd5da.jpg

Il render è stato prodotto in Arnold e per rifarci al discorso del campionamento, è stato importante aumentare i diffuse samples nell'interfaccia del programma, in modo da diminuire il noise nella aree dove l'illuminazione diffusa indiretta è più evidente (nella zampe anteriori e posteriori ad esempio) e dove la luce non colpisce direttamente il soggetto.

Questo schema torna anche molto utile quando occorre mostrare un turntable del soggetto: sulla pagina del progetto in questione (https://www.artstation.com/artwork/oA006W), ad un certo punto, c'è un esempio di animazione a 360 che mostra il risultato di questo schema di illuminazione.

Un altro schema di illuminazione è stato ottenuto in Marmoset Toolbag.
Si tratta di un  tool per il lighting, lookdev e il rendering GPU di modelli 3D ed è anche un ottimo strumento per far showcase di modelli da uploadare in rete con navigazione interattiva.

4274bcef45f3a6117789553cfc448b4d.jpg

In prima battuta si capisce, rispetto al white box lighting, come il mood sia nettamente cambiato.
Qui l'intento è quello di creare più dramma e di enfatizzare la parte interna della bocca.
Partendo da questa idea in mente, è stata aggiunta una spot light per illuminare la parte laterale del coccodrillo, dove ho voluto mantenere evidente la riflessione speculare sulle scaglie della zampa e sulla schiena, perchè era interessante averla.
Ho aggiunto poi un'altra light dietro al soggetto per creare un netto stacco sul background nero: è interessante notare come questo aumenti la drammaticità e delinei la silhouette del coccodrillo. Coprendo il resto, il soggetto sarebbe già riconoscibile dalla sua silhouette superiore.
Infine ho sperimentato un luce diretta sulla parte inferiore della bocca per aumentare sicuramente il contrasto ma molto di più per sperimentare la riflessione indiretta della luce che rimbalza sulla parte alta del palato: più debole in quanto riflessa ma con una distribuzione morbida ed interessante.

9a9e1f7fd250d52b8d124187f3cdc15a.jpg

L'intento è stato quello di creare interesse per l'area della bocca del coccodrillo sfruttando i rimbalzi della luce per mettere in evidenza anche il palato: questa luce funge da key light (in quanto più forte), mentre quella della silhouette potrebbe aver il ruolo di rim light e quella in alto a destra di riempimento e quindi una sorta di fill light.
Si vede dunque uno schema a 3 punti luce, non avendo utilizzato alcuna environment map.

In Marmoset Toolbag è molto interessante sfruttare le opzioni di Camera e di Render che questo strumento ci offre.
In generale nei miei render, quando si parla di inquadrature ravvicinate come questa dove occorre focalizzarsi su alcuni dettagli, inserisco sempre della profondità di campo (depth of field): si osserva infatti la presenza di essa verso la schiena del coccodrillo.
La profondità di campo aumenta il realismo, così come l'aggiunta di un leggero disturbo all'immagine. Ho inserito infatti del noise che risulta quasi impercettibile in questi render (sull'immagine grande in Artstation si può osservare meglio).
Questo aspetto ricorda la velocità della pellicola nelle macchine fotografiche di un tempo , dove a valori alti di velocità del film, corrisponde una grana più grossa o se parliamo di strumenti digitali, maggiori sono gli ISO, maggiore sarà anche il rumore digitale osservato.
Nel mio caso non ho introdotto molto rumore ma il giusto per dar più realismo alla composizione.

Marmoset ha anche la possibilità di regolare nel programma alcuni aspetti di compositing e Post Effect come la luminosità, il contrasto, la saturazione, etc.. che in genere sfrutto qualche volta.

7a04c799d9786d072665c258a69776b9.jpg

Inoltre ha la possibilità di aumentare la definizione dei bordi dell'immagine (Sharpen), di applicare un effetto di Bloom, un effetto Vignette e come si diceva di aggiungere del disturbo alla pellicola attraverso l'opzione Grain.
Se vi interessa approfondire questo tool vi rimando alla pagina ufficiale del sito: https://marmoset.co/toolbag/

Tornando ai nostri render introduciamo un close up più interessante.

8a5012e9b6b8dadfd14554735b422d9e.jpg

Qui l'intento è di catturare sempre più alcuni dettagli del coccodrillo ed in particolare la parte alta che suggerisce più drammaticità, anche per la presenza dell'occhio minaccioso e dell'inquadratura ravvicinata.
Il render proviene sempre da Marmoset Toolbag e si notano interessanti dettagli:

  • la luce cattura l'albedo della parte laterale senza spingere troppo l'intensità
  • vengono messe in risalto le riflessioni speculari, che accompagnano la struttura della geometria. Le riflessioni sono morbide e distribuite
  • La profondità di campo è molto ridotta, essendo una ripresa che si avvicina a dettagli con una lunghezza focale tipo tele e che ha quindi una zona a fuoco (l'occhio) e la parte più vicina alla camera e quella più lontana non perfettamente a fuoco
  • La presenza di un background, ovviamente fuori fuoco (backdrop) e che rievoca l'ambiente paludoso e quindi l'habitat del coccodrillo
  • La presenza di una leggera aberrazione cromatica, che simula alcuni difetti legati alla lente, si può notare specialmente sui bordi dei denti (contorno più rosso)
  • L'aggiunta di una leggera grana (Grain) così come nel render precedente

Interessante è l'aggiunta di una trasformazioni di colori (in gergo LUT) che brucia alcuni dettagli scuri e in ombra aumentando la drammaticità della scena: si nota ad esempio in basso sulla membrana mandibolare, a sinistra su alcune scaglie e sempre in basso a destra sulla parte del collo.

Infine, per rendere più interessante la ripresa ho voluto inserire volutamente un effetto di lens dirt (es. macchioline, sporco sulla lente) che è facile avere se non viene pulita la lente a dovere: si nota una forma esagonale a sinistra e diversi disturbi più piccoli sul background a destra.

Si tratta di effetti in post produzione e invito a utilizzarli solo quando necessario e a fini migliorativi.

Prima di passare all'ultimo render vi mostro alcuni esempi di illuminazione drammatica con l'uso di LUT precedentemente descritta.

Notare in questo caso l'importanza della parte sinistra del soggetto, con l'emergere di dettagli delle scaglie e la riflessione speculare; è anche interessante notare come l'intera immagine sia stata sottoposta ad una trasformazione di colore che "brucia" le parti più scure facendo perdere alcuni dettagli: si tratta di una scelta di stile che sicuramente avrete visto anche in qualche game (es. the evil within), dove si tende a rendere più dark la scena andando a bruciare alcune parti più scure.
Infatti lateralmente alla coda in basso non si notano dettagli: questo è ovviamente non realistico dal punto di vista fisico ma colpisce molto sul mood che si vuole trasferire a chi osserva la scena.

d6a28b05d981f10a6165f983ae963ecc.jpg


Ancora, in questa scena si applica lo stesso schema di luce di prima: una luce dall'alto a sinistra per enfatizzare i dettagli e le riflessioni speculari,  l'applicazione di una LUT per bruciare alcune parti laterali che cadono pienamente in ombra (maggior drammaticità) ed inoltre è presente una luce laterale proveniente da destra (più calda e tendente all'arancione) per dare un look più misterioso, quasi come fosse presente, fuori campo, una sorgente di luce artificiale.

Questa luce è settata in modo da uniformarsi alle scaglie laterali e da rende morbida la transizione dell'ombra sulla zampa frontale. Si ha armonia con la parte sinistra della scena, essendo un colore caldo contro un colore più freddo.

Inoltre è interessante notare come la testa del coccodrillo (in blur), che appare bruciata, sia comunque  visibile nelle sue parti laterali,  grazie proprio a questa sorgente calda.

In questi esempi siamo sempre partiti da un obiettivo, utilizzando schemi tradizionali di illuminazione ma anche settaggi più liberi e finalizzati a comunicare un certo mood nei nostri render.  

2229318e44f3fc3c94cf90dd0d4770f2.jpg

Come ultimo esempio, prima di passare alle conclusioni, consideriamo l'integrazione del nostro coccodrillo con una scena subacquea.

6b4e3738cf9b9f451ecfed1907174cc9.jpg

Più che parlare qui del settaggio di luci ritengo utile discutere  l'integrazione di un render 3D con un backdrop reale.
In questo caso ho scaricato da Google un normale sfondo subacqueo per sperimentare un'illuminazione diversa dalle altre.

Premetto di aver scelto, per gusto personale, uno sfondo più limpido (anche per dare più visibilità al soggetto), ma potrebbe essere anche curioso provare ad integrare il coccodrillo in un ambiente più paludoso, con presenza di più scattering nell'acqua e meno visibilità. Lascio a voi pensare come si potrebbe pianificare la scena in quel caso!

Tornando al render in esame, analizziamo in linea generale l'integrazione.

Innanzitutto questo è  il coccodrillo renderizzato in Arnold con un settaggio di luci uniforme e senza troppi contrasti.

2d45e9c1e15d8bc53c0382731a6a2025.jpg

Si vede chiaramente come il render del coccodrillo non sia integrabile direttamente nell'ambiente subacqueo: non c'è color matching tra le 2 immagini.

Per avere una corrispondenza di colore tra i 2 ho lavorato in Photoshop.

L'immagine sotto è COMPLETAMENTE SBAGLIATA e l'integrazione non è gestita.

63dda0fb3d279b2865afc1c569bb5e6c.jpg

Ci sono diversi modi per fare matching tra un immagine e l'altra. Inizialmente ho utilizzato la feature Corrispondenza Colore per fare un merge più sottile ma non è stato sufficiente, in quanto volevo spingere di più la presenza dell'azzurrino dell'acqua sul coccodrillo, senza introdurre eccessive dominanti cromatiche: dopo tutto l'animale è immerso nell'acqua ed è circondato da essa ma l'acqua non deve modificare di troppo il colore della pelle.
Un primo tentativo grossolano mi ha portato ad ottenere la seguente immagine:

c3ff7d9a723f3a0772fc20635339796f.jpg

Meglio sicuramente di prima ma non ancora corretta, per diversi motivi, tra cui la presenza di un casting di colore troppo azzurro, che modifica il base color non rendendolo realisticamente corretto: dopo tutto il coccodrillo ha un base color tendente al marroncino e non può assumere una colorazione così azzurra.

A questo punto ho trovato utile utilizzare un filtro che calcola una media pesata della tinta del background per poi sovrapporla al layer del coccodrillo: selezionando il background sono andato sotto Filtri -> Sfocatura -> Media e ho ottenuto una tinta che ho messo in blending con il coccodrillo, senza esagerare l'effetto.

Alla fine, per rimuovere il color casting introdotto dall'azzurrino, ho applicato una LUT (ottenibile da Consultazione Colore), ripristinando così una tinta più simile a quella marroncina presente sul mio base color e mantenendo quel tocco di azzurrino che lo mantiene connesso all'ambiente.
Sono stati inoltre sfruttati i livelli e le curve per migliorarne l'integrazione.

Per aumentare ulteriormente il realismo della scena ho applicato una sfocatura generale al layer del coccodrillo e gestito la profondità di campo verso la coda.

Ho anche creato dei semplici livelli di aggiustamento per l'illuminazione della scena in generale, dove ho aggiunto maggiore luminosità sulla sinistra (praticamente in prossimità della testa del coccodrillo), mentre, nella parte dietro, ho scurito leggermente per creare un po' più di profondità. 

Aprendo una parentesi sull'immagine del background, prima di effettuare l'integrazione che ho descritto sopra, ho modificato l'environment rendendolo più interessante di quello originale. 

Di seguito l'ambiente scaricato direttamente dalla rete, dove ho cercato di operare un po' di Tone Mapping, per avere tinte più verdine e con un po' di effetto di torbidità, senza esagerare (lo si nota di più sulle pietre).

de8098a41091d29dbb43e6bde7045b5f.jpg

Di nuovo, Il risultato finale dell'integrazione che riporto è il seguente: il coccodrillo sembra ora vivere di più nell'environment e questo grazie all'utilizzo di Photoshop in post produzione. 

48779f935b7dc12655bc3f73b7927fc5.jpg


Conclusione


Siamo giunti ora alle conclusioni di questo articolo dedicato al lighting e al rendering.


Spero abbiate trovato utile questo making of, dove in prima battuta ho ritenuto importante introdurvi il concetto di Sampling, che fa parte di uno degli aspetti chiave del rendering e che troverete in qualsiasi pacchetto software voi usiate: sia esso Maya, Max, Blender, Cinema4D, etc..
Il mio intento è stato quello di potervi aiutare a comprendere come ottenere render più puliti semplicemente con un campionamento più accurato.

Siamo poi passati a parlare in generale dell'importanza che ha il mood nella creazione di una scena 3D e di come si possano sfruttare schemi di illuminazione base, per poter poi arrivare a soluzioni più personalizzate e più indicate agli scopi.

Si è parlato poi del progetto in questione, discutendo il setting di alcuni render in linea generale.

Infine, vi ho illustrato brevemente un esempio di come uno strumento di post produzione torni utile per integrare un render 3D all'interno di un environment reale.

Vi lascio ora a brevi consigli pratici.

Consigli Pratici


  • Approfondite i concetti di Sampling per capire anche gli altri aspetti legati ai raggi specular, transmission, SSS, etc..;
  • Cercate di ragionare la scena in termini di Ray Depth per capire quando aumentare o mantenere i default dei rimbalzi della luce;
  • Imparate dalle reference per capire i mood da voler ricreare: partendo anche dagli studi di Artisti del passato, potete trovare degli schemi interessanti da applicare (ad esempio lo schema di l'illuminazione alla Rembrandt);
  • Non limitatevi a fermarvi ai classici schemi di illuminazione: ricordate che si tratta di punti di partenza che possono comunque essere modificati e ampliati, relativamente alla scena che volete rappresentare;
  • Esercitatevi con l'uso di Environment Map quando necessario e sperimentate diverse luci ambientali anche solo per capire quale meglio si adatta ai vostri scopi;
  • Se avete la possibilità, provate anche più renderer, per capire le differenze tra un motore e l'altro (es. Arnold, Marmoset, VRay, Redshift per citarne alcuni);
  • Il post processing può esservi di aiuto e usatelo per migliorare la qualità dell'immagine: se riuscite ad ottenere già un buon render dal pacchetto 3D, avete già raggiunto un ottimo traguardo;
  • Per integrare un vostro modello 3D con uno sfondo reale, seguite alcuni semplici principi e consigli spiegati ed integrateli con delle guide e tutorial specifici. Facendo pratica imparerete in poco tempo.

Spero di avervi fornito informazioni utili e che possiate trarre da questa spiegazione alcuni spunti per i vostri lavori.
Suggerisco inoltre di leggere la prima parte di questo articolo dedicata al texturing e che potete trovare al seguente indirizzo:

https://www.treddi.com/cms/making-of/crocodile-project-texturing-prima-parte/4927/

Se inoltre foste interessati ad utilizzare il mio rig per i vostri progetti, vi rimando al link dove potete acquistarlo:

https://www.artstation.com/marketplace/p/M7LL/realistic-crocodile-rig?utm_source=artstation&utm_medium=referral&utm_campaign=homepage&utm_term=marketplace

https://www.cgtrader.com/3d-models/animals/reptile/realistic-crocodile-rig

https://www.turbosquid.com/3d-models/crocodile-rig-animations-3d-model-1642779

Per qualsiasi domanda fate riferimento al mio indirizzo mail: jackfurneri1984@gmail.com

Buon lavoro!!!