Ciao a tutti, ecco il mio nuovo tormentone. Dopo l'ennesimo rendering per lavoro mi son deciso finalmente di farmi un po' di chiarezza su questi benedetti parametri che tanto amiamo, odiamo e modifichiamo quotidianamente. NE avevo piene la balle di utilizzare i preset, perché non capivo bene quello che stessi combinando. Si, diciamo che sapevo quello che stavo ottenendo, ma non mi erano chiari alcuni passaggi e così mi son deciso di scrivere questo tutorial, un po' per me, un po' per voi tutti. Premetto che non si tratta di un tutorial base e molte cose le do già per scontate e assimilate. Va beh, iniziamo...



ADVANCED TUTORIAL


VRay - GI Setup

CECOFULI

AMD 3200 / 1 Gb Ram

ing_legrenzi@hotmail.com



PREMESSA: durante la generazione dei render utilizzerò sia PS, che FRONTPAGE che altri applicativi attivi. Questo influenzerà negativamente sui tempi di rendering, ma non in modo tale da renderli non veritieri.




Cercheremo in questo tutorial di fare un po' di chiarezza sui vari metodi di GLOBAL ILLUMINATION ( GI ) in VRay.

Prenderemo in considerazione una semplice scena. Si tratta di un esterno illuminata da una sola fonte luminosa.

01%20 %20GI
fig. 01





DIRECT COMPUTATION

Il primo metodo computazionale della GI è il  cosiddetto sistema DIRECT COMPUTATION



02%20 %20GI
fig. 02



Ora è diventato QUASI-MONTE-CARLO dalla V 1.45.xx in poi. E' un metodo molto semplice e anche la sua comprensione lo è: affinché ogni punto della superficie di un oggetto venga coperto dalla GI, VRay emette dalla fonte luminosa  un tot numero di raggi, controllato dal parametro SUBDIVS e ne calcola il numero di rimbalzi col SECONDARY BOUNCE .

03%20 %20GI
fig. 03

Come possiamo notare l'immagine è molto sgranata, ma la soluzione è molto precisa, senza zone a macchie, slavate o con artefatti strani. L'unica cosa che notiamo è un grosso disturbo generale dell'immagine (noise). La prima cosa ovvia che mi viene in mente è quella di alzare il valore dei reggi emessi, e lo portato da 8 a 50.



04%20 %20GI
fig. 04

05%20 %20GI
fig. 05

    Ora il noise è molto meno e l'immagine è molto più nitida. Ma anche il tempo ne ha risentito. In questo caso, l'aumento dei SECONDARY BOUNCE non porta nessun beneficio, in quanto essendo una scena all'aperto i rimbalzi secondari giocano un ruolo marginale nell'illuminazione della scena. Durante i rendering ho anche notato una cosa. Quando il bucket arriva al livello dell'oggetto curvo impiega moltissimo tempo prima di generare il rendering che non lungo le aree piatte.



Non essendo ancora contenti portiamo il valore delle Subdivs a 100.

06%20 %20GI
fig. 06

07%20 %20GI
fig. 07



Molto bella, ma ahimè, i tempi si sono dilatati notevolmente

Il maggior vantaggio che ne traiamo da questo metodo è l'estrema pulizia ed accuratezza del render, oltre ovviamente alla facilità di impostazione stessa. Non ci sono zone a macchie, fastidiosamente sfuocate o slavate. L'ombra è molto precisa anche nelle più piccole fessure. Durante le animazioni fatte con questo sistema non c'è problema di sfarfallio dell'immagine o delle texture, nessun "Flickering" o alterazione di colore.

L'altra faccia della medaglia è la lentezza, che se accettabile in situazioni d'illuminazione semplici, tipo esterni, risulta veramente frustrante in interni o in scene con sistemi complessi di illuminazione. Oltretutto vi è la impossibilità di salvare la soluzione della GI che, se in casi dove vi sono oggetti in movimento questa feature non viene a servire, in animazioni tipicamente architettoniche ( walk-throught ) questa carenza si fa sentire moltissimo.





IRRADIANCE MAP



08%20 %20GI
fig. 08



L'altro sistema, il vero punto di forza di VRay è la cosiddetta "Mappa di irradianza" o meglio  IRRADIANCE MAP ( IM ) . Con la IM invece di calcolare per ogni punto dell'immagine la GI durante la fase di renderizzazione finale, VRay renderizza l'immagine prima ad una risoluzione inferiore a quella finale, risolve la GI in quel determinato punto,utilizzando una precisa quantità raggi HSph. subdivs  proprio come fa la Direct Computation o Brute Force. Se ci sono delle variazioni di colore, di angolazione delle facce o qualsiasi altra interferenza VRay calcola in quelle determinate zone più campionature per la GI. aumentando l'accuratezza della GI.

La fine di questo calcolo è un'insieme di punti distribuiti - mappa -  nello spazio 3D i quali hanno all'interno di se informazioni riguardanti lo shading della superficie, appunto la cosiddetta IRRADIANCE MAP

Poi, quando VRay deve generare l'immagine finale, invece di calcolare la GI per ogni singolo pixel, può miscelare o interpolare il valore della GI dei singoli punti 3D della IM per trovare la soluzione corretta. La qualità di questa campionatura intermedia è gestita dal parametro Interp. sample

Ora inizia il bello, ossia trovare il giusto equilibri tra i 7 parametri che definiscono la IM. Se impostati in modo errato possono rendere lil calcolo della GI anche più lungo della DIRECT COMPUTATION e con risultati pessimi.

Abbiamo generalmente 3 cose da impostare

-    HSph. subdivs

-    Interp. sample

-    Tasso di campionatura ( da non confondere con il numero di raggi della soluzione GI , ma la campionatura dello spazio immagine)



HSPH SUBDIVISION

Questo parametro controlla la campionatura della soluzione GI. Quando VRay decide di voler dei campioni per la GI immagina un emisfero virtuale allineata alla normale della superficie in quel determinato punto. Dopodichè inizia ad emettere un certo numero di raggi in modo casualeall'interno di questo emisfero. Questi raggi vengono usati per calcolare una valore medio di illuminazione in quel particolare punto. Poi VRay si sposterà nel successivo posizionamento di campionatura. Per ottenere il numero di raggi effettivamente utilizzati bisogna quadrare il valore di HSph. subdivs Così per un valore uguale a 1 VRay utilizza solamente un singolo raggio emesso casualmente. In questo modo si otterrano risultati macchiati. Solitamente si iniziano ad ottenere risultati accettabili da un valore 20 in su. La lista sottostante aiuta a capire quanti raggi effettivamente vengono utilizzati durante un render. Può essere d'aiuto abche per una stima della durata del render. Per esempio partendo da 25 fino ad arrivare a 50 VRay utilizza un numero 4 volte superiore e presumibilmente il tempo aumenterà di 4 volte. Arrivando a 100 il tempo diventerà 16 volte maggiore

HSphere subdivs: 1 = 1 raggio
HSphere subdivs: 2 = 4 raggi
HSphere subdivs: 3 = 9 raggi
HSphere subdivs: 4 = 16 raggi
HSphere subdivs: 5 = 25 raggi
HSphere subdivs: 6 = 36 raggi
HSphere subdivs: 7 = 49 raggi
HSphere subdivs: 8 = 64 raggi
HSphere subdivs: 9 = 81 raggi
HSphere subdivs: 10 = 100 raggi
HSphere subdivs: 15 = 225 raggi
HSphere subdivs: 20 = 400 raggi
HSphere subdivs: 25 = 625 raggi
HSphere subdivs: 50 = 2500 raggi
HSphere subdivs: 100 = 10000 raggi



Con valori elevati vengono utilizzati molti raggi e l'illuminazione risulterà corretta ed uniforme; con valori bassi l'aspetto sarà macchiato. Questo aspetto a macchie deriva dal fatto che non è stato possibile ottenere una corretta mappa d'irradianza e che i raggi erano troppo pochi. Da notare che sto parlando di macchie presenti già nella mappa d'irradianza, non dell'immagine finale. Certo, con valori elevati di Iterp. Sample ( vedi seguente ) il problema potrebbe essere corretto, ma rischiamo di ottenere un'immagine slavata



VALORI BASSI

-  I campioni racchiusi nella IM sono molto disturbati e

- Veloce nella fase di calcolo e generazione della IM

09%20 %20GI
fig. 09

10%20 %20GI
fig. 10

11%20 %20GI
fig. 11



VALORI ALTI

-  I campioni racchiusi nella IM sono molto puliti e ne trae giovamento l'immagine in generale

- Lento nella fase di calcolo e generazione della IM

12%20 %20GI
fig. 12

13%20 %20GI
fig. 13

14%20 %20GI
fig. 14

Come si può notare i campioni non hanno  ne cambiato di numero ne la posizione rispetto al precedente test









INTERPOLAZION SAMPLE

Come detto precedentemente questo parametro influisce sull'interpolazione fra due punti facenti parte della IM. Determina quanti campioni GI devono essere usati per l'illuminazione finale per ogni pixel del rendering.

VALORI BASSI

-    Aspetto maculato della GI, in quanto l'interpolazione tra due punti della mappa d'irradianza ha pochi campioni da utilizzare

15%20 %20GI
fig. 15  

16%20 %20GI
fig. 16

17%20 %20GI
fig. 17

-    Addirittura, con valori bassissimi si può vedere la struttura reale della IM.

-    Veloce durante la fase finale di rendering.

18%20 %20GI
fig. 18

19%20 %20GI
fig. 19



VALORI ALTI

-    L'aspetto maculato viene questa volta sostituito da un effetto slava, sfuocato e offuscante.

-    Lento nella fase finale di rendering.

20%20 %20GI
fig. 20

21%20 %20GI
fig. 21

22%20 %20GI
fig. 22

Come potete notare l'immagine a un aspetto più uniforme, ma molto slavato e privo di dettagli, sopratutto nelle zone d'ombra. Anche il tempo sono aumentati, ma non durante la fase di calcolo per la generazione della mappa d'irradianza che è rimasto identico, ma durante la generazione dell'immagine finale. E' anche da osservare che la posizione e il numero di campioni  non sono cambiati ne di numero ne di posizione. Infatti, come ho detto, questo parametro influisce solo la fase terminale del render e non il calcolo vero e proprio della GI



In definitiva questo valore non deve essere ne troppo baso, per evitare un effetto maculato della GI, ma neanche troppo elevato, il che significherebbe avere un'immagine senza macchie, ma priva di dettagli e troppo slavata.



MIN RATE  -  MAX RATE

Vi siete mai chiesti a cosa servono e a cosa si riferiscono?

Molti di voi sicuramente fin'ora hanno dato poca importanza a questi due valori; infatti utilizzando i preset di VRay molte volte l'impostazione di default è sufficiente per ottenere risultati più che soddisfacenti. Ma se avete mai creato dei render ad altissima risoluzione vi sarete accorti che questi valori di default non sono corretti; o meglio, vanno modificati.

Inizialmente VRay calcola i campioni ad una risoluzione che normalmente è di molto inferiore a quella del rendering finale. Poi decide se aumentare la densità di campionatura in base a determinati parametri, quali il colore, le normali e distanze ben determinate e impostate (vedremo poi come) . Di conseguenza VRay sa dove c'è più bisogno di campioni e li li aumenta. Generalmente si tratta di zone curve o relativamente strette, come spigoli o insenature.

Questi due valori dipendono dalla risoluzione. Inizialmente VRay calcola la GIad una risoluzione minore. Successivamente ripassa l'intera immagine per il calcolo della GI, ma siccome precedentemente era già passato, ha delle informazioni in più questa volta e sa già dove la GI deve essere più accurata e dove no. Essenzialmente già nel secondo passaggio vedrete che il passaggio sarà molto veloce in quelle zone piane e con illuminazione regolare. Viceversa rallenterà in prossimità di anfratti o superfici curve. Così discorrendo finché non esaurirà tutti i prepass.

Min rate - Questo valore determina la risoluzione del primo passaggio della GI. Un valore uguale a zero significa che la risoluzione sarà la stessa di quella dell'immagine finale. Questo renderà la IM simile alla Direct Computation. Un valore -1 significa che la risoluzione sarà la metà di quella finale. Solitamente questo valore è bene tenerlo negativo in modo tale che il calcolo della GI sia più veloce sunne superfici ampie e  piane.

Max rate - Questo valore determina la risoluzione dell'ultimo passaggio della GI.



Facciamo un esempio: il nostro render ha una risoluzione di 640x361. Se utilizziamo un'impostazione -3,-0 significa che l'immagine iniziale sarà 8 volte inferiore a quella iniziale 2^3=8

    .    Prepass 1: La GI viene calcolata ad una risoluzione 80x45 ( = 640/2/2/2  e 361/2/2/2 )

    .    Prepass 2: La GI viene calcolata ad una risoluzione 160x90 ( = 640/2/2  e 361/2/2 ) che però in questo caso VRay possiede già delle info ricavate dal 1° passaggio

    .    Prepass 3 La GI viene calcolata ad una risoluzione 320x180 ( = 640/2  e 361/2 ) che però in questo caso VRay possiede già delle info ricavate dal 2° passaggio  

    .    Prepass 4: La GI viene calcolata ad una risoluzione 640x361 che però in questo caso VRay possiede già delle info ricavate dal 3° passaggio



Poichè ogni passaggio che compie VRay ha sempre delle informazioni in più, sa dove caloclare meglio la GI e concentrarsi meno su aree meno dettagliate.



Se volessimo raddoppiare la risoluzione e portarla a 1280x722 dovremmo impostare valori -4, -1 infatti avremo sempre 4 prepass alle stesse risoluzioni

    .    Prepass 1: La GI viene calcolata ad una risoluzione 80x45 ( = 1280/2/2/2/2  e 772/2/2/2/2 )

    .    Prepass 2: La GI viene calcolata ad una risoluzione 160x90 ( = 1280/2/2/2  e 772/2/2/2 ) che però in questo caso VRay possiede già delle info ricavate dal 1° passaggio

    .    Prepass 3 La GI viene calcolata ad una risoluzione 320x180 ( = 1280/2/2  e 772/2/2 ) che però in questo caso VRay possiede già delle info ricavate dal 2° passaggio  

    .    Prepass 4: La GI viene calcolata ad una risoluzione 640x361 ( = 1280/2  e 772/2 ) che però in questo caso VRay possiede già delle info ricavate dal 3° passaggio





A questo punto potrebbe sorgere una domanda: poniamo il caso di realizzare un  render a 640x361 con valori -3, -1 . Abbiamo 3 passaggi :

    .    Prepass 1: La GI viene calcolata ad una risoluzione 80x45 ( = 640/2/2/2  e 361/2/2/2 )

    .    Prepass 2: La GI viene calcolata ad una risoluzione 160x90 ( = 640/2/2  e 361/2/2 ) che però in questo caso VRay possiede già delle info ricavate dal 1° passaggio

    .    Prepass 3 La GI viene calcolata ad una risoluzione 320x180 ( = 640/2  e 361/2 ) che però in questo caso VRay possiede già delle info ricavate dal 2° passaggio  

in questo caso non abbiamo il 4 passaggio, in quanto abbiamo detto a VRay che come Max Rare doveva fermarsi a -1, quindi ad una  risoluzione metà di quella iniziale

23%20 %20GI
fig. 23

24%20 %20GI
fig. 24

25%20 %20GI
fig 25  

    PS: d'ora in poi le immagini dove compaiono i sample verranno generare riutilizzando la mappa creata per la versione in shade così da risparmiare tempo. La fig. 25 è la prima



   Ora realizziamo un  render a 640x361 con valori -2, 0 . Abbiamo sempre  3 passaggi pero...

     .    Prepass 1: La GI viene calcolata ad una risoluzione 160x90 ( = 640/2/2  e 361/2/2 )

    .    Prepass 2: La GI viene calcolata ad una risoluzione 320x180 ( = 640/2  e 361/2 ) che però in questo caso VRay possiede già delle info ricavate dal 1° passaggio

    .    Prepass 3 La GI viene calcolata ad una risoluzione 640x480 che però in questo caso VRay possiede già delle info ricavate dal 2° passaggio  

26%20 %20GI
fig. 26

27%20 %20GI
fig. 27

28%20 %20GI
fig. 28

    Come osserviamo oltre all'aumento del tempo vi è stato anche un aumento dei sample collezionati all'interno della IM, anche se i prepass sono gli stessi!



Ora invece impostiamo i valori come nell'esempio iniziale -3,-0 Abbiamo 4 passaggi però

    .    Prepass 1: La GI viene calcolata ad una risoluzione 80x45 ( = 640/2/2/2  e 361/2/2/2 )

    .    Prepass 2: La GI viene calcolata ad una risoluzione 160x90 ( = 640/2/2  e 361/2/2 ) che però in questo caso VRay possiede già delle info ricavate dal 1° passaggio

    .    Prepass 3 La GI viene calcolata ad una risoluzione 320x180 ( = 640/2  e 361/2 ) che però in questo caso VRay possiede già delle info ricavate dal 2° passaggio  

    .    Prepass 4: La GI viene calcolata ad una risoluzione 640x361 che però in questo caso VRay possiede già delle info ricavate dal 3° passaggio

29%20 %20GI
fig. 29

30%20 %20GI
fig. 30

31%20 %20GI
fig. 31

    Anche se abbiamo 4 passaggi, il primo è ad una risoluzione di 80x45, inferiore a 160x90 e quindi i campioni sono minori, anche se è stato fatto un passaggio in più. Infatti se sovrapponete le 2 immagini , quella fatta a -3, -1 e questa fatta a -3, 0 i samples coincidono ed in quest'ultima, ovviamente. Altra osservazione: i tempi , che sono stati maggiori rispetto alla soluzione con -3, 0 (ovviamente)

---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui