Come era stato anticipato nel precedente articolo di introduzione al motore di rendering Mental Ray, in questa seconda parte verrà affrontato, sempre in tema di Simulazione fotorealistica della luce, l’argomento della Global Illumination , ovvero verranno analizzati gli algoritmi di calcolo dedicati alla simulazione della componente indiretta della luce.

Prima di proseguire è opportuno precisare cosa si intende con il termine componente “diretta” e “ indiretta” della luce , nel campo della simulazione.

Qualsiasi fonte luminosa emette una quantità di luce che colpisce direttamente gli oggetti e le superfici incidenti illuminandoli, questa viene quindi considerata come componente diretta. Successivamente una parte della componente di luce diretta viene riflessa dalle superfici colpite generando una componente che viene definita indiretta.

Questa distinzione è necessaria al motore di rendering per rappresentare correttamente il comportamento della luce e l’influenza degli oggetti e delle superfici che vengono coinvolti nel processo di rendering. Naturalmente in queesto processo ruolo fondamentale giocano i materiali delle superifici e di conseguenza la capacità di questi di riflettere o diffondere la luce nello spazio.

Al fine di rappresentare correttamente questo fenomeno denominato appunto “Global Illumination” in Mental Ray sono presenti tre algoritmi di calcolo:

  • Final Gather ,
  • Photon Map,
  • IBL (image-based Lighting).

Quest’ultimo algoritmo è stato introdotto ufficialmente dalla versione 2014 di 3ds Max Design ed è dedicato all’analisi della luce indiretta generata attraverso una fonte luminosa denominata “Skylight” abbinata alle immagini HDRI (HIght Dinamic Range Imaging).

Malgrado questa tecnica venga molto utilizzata ,con buoni risultati qualitativi ,non verrà analizzata in questo articolo in quanto questa fonte non è pienamente supportate dal sistema lighting analysis di cui si è parlato negli scorsi articoli.

 Final Gather

è un algoritmo che spesso viene utilizzato e consigliato in ambientazioni esterne , dove i “rimbalzi” (bounces) della luce indiretta sono ridotti , ed è dipendente dal punto di vista dell’osservatore , quindi nel nostro caso dalla fotocamera.

Sostanzialmente dalla fotocamera vengono emessi dei raggi verso gli oggetti e le superfici dando così origine ad una griglia bidimensionale composta da punti, ognuno dei quali ha il compito di analizzare le informazioni dell’illuminazione su quel punto specifico.

final gather

E’ possibile determinare la qualità del Final Gather attraverso i seguenti parametri :

  1. Initial FG Point Density ;
  2. Rays Per FG Points ;
  3. Inerpolate Over Num FG Points;
  4. Diffuse Bounces;

Initial FG Point Density : è la quantità di punti che determinano la griglia del Final Gather è controllata attraverso questo parametro.

Le immagini seguenti sono state ottenute attraverso uno strumento di analisi denominato “diagnostic” (attivabile dalla scheda processing della finatra render setup) con il quale è possibile visualizzare la densità dei punti della mappa Final Gather direttamente sul rendering.

 

FG Point Density 0,1

 Density0,1_J  

FG Point Density 0,5

Density0,5_J

FG Point Density 1

Density1_J

 

Dalle immagini è possibile osservare la variazione della quantità di punti al variare del valore di FG Point Density, e il loro comportamento nel momento in cui incontrano le superfici e li oggetti.

 

Rays Per FG Points è un parametro che determina la qualità delle informazioni raccolte ad ogni singolo punto della griglia e la correzione della disposizione dei punti in base agli oggetti o geometrie incontrate.

Le seguenti immagini dimostrano come al variare di questo parametro migliori la qualità della mappa del Final Gather.

Rays Per FG Points 1

  Rays_1_J

Rays Per FG Points 50

 Rays_50

Rays Per FG Points 100

 Rays_100_J

Rays Per FG Points 500

Rays_500_J

Immagini ottenute con valori di FG Density pari a 0,2 e Interpolate Over Num pari a 30

Interpolate Over Num. FG Points Questo valore controlla il numero di Final Gather points utilizzati per ogni campione dell’immagine.

Aumentando questo parametro migliora l’uniformità dell’immagine diminuendo così il fenomeno di “chiazzatura” , ma al tempo stesso diminuisce la qualità dei dettagli degli oggetti.

Per questo motivo è opportuno ricercare un adeguato compromesso.

Il Diffuse Bounces determina la quantità dei rimbalzi della luce indiretta che colpisce gli oggetti e le superfici.

Un secondo parametro ad esso abbinato denominato “Weight” stabilisce l’intensità dei rimbalzi , ed è doveroso precisare che se si intende ottenere un risultato fisicamente corretto è opportuno non modificarlo in quanto il valore di default è il valore fisicamente corretto.

Le seguenti immagini rappresentano una sequenza con valori crescenti da 1 a 5 rimbalzi (ottenute con valori costanti di density pari a 0,5 e rays pari a 500).

 Diffuse Bounces 1

   Bounces_1

Diffuse Bounces 2

 Bounces_2

Diffuse Bounces 3

 Bounces_3

Diffuse Bounces 4

 Bounces_4

Diffuse Bounces 5

Bounces_5

In natura ovviamente i rimbalzi della luce sono infiniti , ma in questo caso trattandosi di simulazione è opportuno trattare questo parametro con una certa cautela , visto che influisce in modo determinante sui tempi di rendering, e ovviamente sulla resa finale.

Un numero adeguato oltre al quale non si percepiscono sostanziali miglioramenti in termini di resa foto realistica , è pari a 4 rimbalzi come è possibile notare dalla sequenza di immagini, ma dipende dal tipo di ambientazione che si sta analizzando.

È presente anche un “Multiplier” (moltiplicatore), un parametro che regola l’intensità dell’illuminazione indiretta generata tramite il Final Gather.

Questo parametro di default è impostato a 1 per restituire un comportamento fisicamente corretto della luce indiretta.

Intervenire su questo parametro ,significa alterare sia il risultato qualitativo che quantitativo della simulazione, quindi è fondamentale non agire su di esso.

Photon Map

 LA Photon Map è una soluzione prevalentemente utilizzata ,in abbinamento con il Final Gather, in ambientazioni interne , o in spazi confinati, dove i rimbalzi della luce indiretta sono maggiori.

Nella Photon Map i raggi incaricati di reperire informazioni sull’illuminazione indiretta sulle superfici e geometrie non vengono emessi dalla fotocamera e quindi dal punto di vista dell’osservatore, ma direttamente dalla fonte luminosa, o dalle fonti luminose.

In questo caso i raggi del Final Gather, vengono sostituiti dai “Fotoni”, vere e proprie particelle che una volta emesse si dispongono su tutti gli oggetti e superfici, a prescindere che essi siano visibili o meno dalla fotocamera.

Il lavoro che nel Final Gather viene svolto dai Bounces (rimbalzi della luce indiretta) nella Photon Map vengono incaricati i fotoni , e al Final Gather viene affidato un compito di rifinitura delle informazioni raccolte dalla Photon Map.

Sostanzialmente la Photon Map aiuta ad ottimizzare i tempi di rendering in quanto è possibile diminuire i valori del Final Gather quando questi due algoritmi vengono utilizzati in coppia, e in alcuni casi migliora la qualità della resa complessiva, ma per ottenere risultati qualitativamente e quantitativamente accettabili è indispensabile ottimizzare l’impostazione dei parametri che determinano la qualità della Photon Map :

  • Average GI Photons per Light ;
  •  Maximum Num. Photon per Samples ;
  •  Maximum Sampling Radius;

Average GI Potons per Light, permette di impostare un numero fisso di Fotoni uguale per ogni fonte luminosa presente nella scena.

Come sempre è bene precisare che ogni ambientazione presenta caratteristiche diverse, dovute da molti fattori come le dimensioni dell’ambiente, il tipo di materiali, il numero e le dimensioni delle aperture ecc., quindi è impossibile stabilire a priori un valore tipico che possa soddisfare tutte le possibili esigenze.

Detto questo , un valore indicativo valido nella maggior parte dei casi dove l’ambiente è costituito da una stanza , può essere pari a 250000 – 300000 fotoni da suddividere fra tutte le fonti luminose, comprese le fonti naturali se presenti e se partecipano alla simulazione.

E’ altresì possibile (e lo vedremo quando verranno analizzate le fonti luminose di Mental Ray) operare singolarmente impostando un valore per ogni fonte luminosa, con valori maggiori alle fonti primarie e minori alle fonti considerate secondarie.

Va detto però che questa è una procedura molto delicata e verrà analizzata al momento della descrizione delle varie fonti luminose gestibili con Mental Ray.

Le seguenti immagini sono state ottenute disattivando il Final Gather in modo tale da poter osservare il comportamento della Photn Map all’aumentare del numero di fotoni.

Fotoni = 10000

Fotoni_10000

Fotoni = 50000

Fotoni_50000

Fotoni = 100000

Fotoni_100000

Fotoni = 300000

Fotoni_300000

All’aumentare del numero di fotoni le informazioni raccolte dalla mappa sono sempre più accurate e dettagliate, ma naturalmente aumentano di conseguenza i tempi di rendering.

Una volta riattivato il Final Gather si ottiene un’immagine pulita ed omogenea grazie al suo lavoro di rifinitura , come è possibile osservare dall’immagine che segue :

Fotoni_300000+FG

Maximum Sampling Radius determina la dimensione in unità della scena (è consigliato impostare come

unità di misura i cm ) del singolo campione, il quale ha il compito di reperire le informazioni sull’illuminazione in una determinata zona dell’immagine .

Le seguenti immagini, sono state ottenute disattivando il Final Gather, ed è stato impostato un numero molto basso (100) di   Average GI Photons per Light in modo da poter distinguere con facilità i fotoni , e poter così osservare il loro comportamento all’aumentare del Radius.

Radius : 1 cm

Radius_1

Radius : 10 cm

Radius_10

Radius : 50 cm

Radius_50

Il Maximum Num. Photons per Sample stabilisce il numero di fotoni che verranno utilizzati per il campionamento all’interno del raggio stabilito dal Maximum sampling Radius.

La sequenza di immagini che segue dimostra come all’aumentare di questo parametro migliori la qualità della Photon Map .

Maximum Num. Photons : 10

Maximum-Num10

Maximum Num. Photons : 100

Maximum-Num100_J

Maximum Num. Photons : 500

Maximum-Num500_J

Maximum Num. Photons : 1000

Maximum-Num1000

Come nel Final Gather anche nella Photon Map è presente un parametro moltiplicatore ovvero il Multiplier, che lavora esattamente allo stesso modo, cioè modificando l’influenza della luce indiretta, o meglio della Photon Map .

Anche qua, se si desidera ottenere un risultato fisicamente corretto, questo parametro non va alterato e deve rigorosamente essere mantenuto al valore di defoult ovvero 1.

Lo stesso principio vale per la dominante cromatica della luce, che pò essere alterata.

 Parte dei concetti e delle nozioni inserite in questo articolo sono tratte dal libro “Autodesk 3ds Max 2014 Guida per architetti,progettisti e designer” edito da Tecniche Nuove , autore Emiliano Segatto.

 

Concludendo, come dicevo in precedenza, è impossibile sintetizzare in poche righe un software complesso come Mental Ray, ai fini di questa trattazione, è stato analizzato Mental Ray in quanto attualmente è l’unico motore completamente supportato dal sistema lighting analysis, che verrà analizzato in dettaglio nel prossimo articolo.

E’ opportuno e doveroso precisare però che attualmente in commercio esistono alcune alternative a Mental Ray , ad esempio iRay, motore di render Unbiased (mental Ray è considerato un motore di rendering “Biased”) ,sempre di proprietà di Nvidia, integrato anch’esso in 3dsMax Design 2014. iRay calcola l’immagine senza compromessi, restituendo immagini qualitativamente eccezionali e fisicamente corrette.

Detto questo, è opportuno sottolineare che, qualunque sia il motore di rendering, o il software utilizzato per generare rendering foto-realistici , è l’operatore che fa la differenza.

Il rendering foto-realistico e fisicamente corretto è il risultato di un insieme di fattori, dalla modellazione precisa, alla cura dei dettagli dei materiali, passando per una inquadratura studiata e ragionata a una composizione dell’immagine leggibile e adeguata al soggetto principale.

Non sono solo i parametri e i “settings” degli algoritmi di calcolo a fare la differenza, ma tutto il flusso di lavoro , e le conoscenze della materia, come in ogni lavoro, e in ogni professione.