Lo shader DGS di Mental Ray.
Cos'è e come usarlo.
di Alessandro Pantanella.

salepepe
clicca qui per ingrandire

Introduzione.

Ho deciso di scrivere questo tutorial in quanto, un anno fa quando iniziai ad interessarmi seriamente di 3D fui affascinato incredibilmente dal fotorealismo e decisi di studiare Mental Ray.
Però la cosa non è stata e non è tutt'ora facile in quanto è spesso difficile procurarsi dei materiali di studio scritti in modo semplice e questo è il mio intento.

Argomenti trattati.

Questo tutorial nasce quindi dalla mia esperienza nello studio di MentalRay e riguarda lo shader DGS che viene distribuito con questo eccellente motore di rendering.
Il mio fine è quello di spiegare, in una maniera semplice, cos'è e come può essere usato questo shader per simulare dei materiali realistici.
Ho inserito delle note con delle informazioni che faranno ottenere risultati migliori e guadagni di tempo.
E' mia intenzione creare un tutorial successivo che introduca all'uso di texture e bump mapping con lo shader DGS.

Materiali da scaricare prima di inziare il tutorial.

Nelle scene del tutorial spesso utilizzo la tecnologia HDRI per questione di comodità e per ottenere delle ottime riflessioni.
Ho utilizzato la mappa uffizi_probe.hdr liberamente scaricabile dall'ormai famoso sito di Debevec:

http://www.debevec.org/Probes/

Scene del tutorial:

scene dei materiali creati nel tutorial (in formato Maya Ascii di Maya 6.0).



Il DGS e la realtà.

Mental Ray per Maya è corredato di diversi shaders, materiali ed utility.
Tra tutti questi quello che prenderemo in considerazione quì è lo shader chiamato DGS.

Qual'è la particolarità che lo contraddistingue dagli altri shaders di Mental Ray (da ora MR) e di Maya?

DGS innanzitutto è l'abbreviazione di Diffuse, Glossy e Specular, che sono i tre tipi di riflessione simulati da questo shader. Il DGS è nato con l'intento di simulare la realtà riproducendo l'effettivo comportamento dei materiali nella vita reale, fa infatti parte degli shaders fisici di MR e non di quelli base che, come quelli di Maya, non si basano su una simulazione corretta della realtà.

Le Riflessioni nella realtà.

Nel mondo reale ogni cosa riflette, non solo specchi, acqua e metalli, ma anche le superfici come i muri imbiancati o le stoffe.

Si possono distinguere tre tipi di riflesioni:

Diffusa (Diffuse), appunto la riflessione dei muri in cemento, delle stoffe, del legno non lucidato, ecc...

rifD

Riflessioni sfocate, dette anche blurry reflections (Glossy), per capirci quelle date da materiali come i metalli satinati, dal ghiaccio, dalla pelle lucida come quella delle 24 ore.

rifG

Speculari (Specular), le riflessioni degli specchi e delle superfici lucide. Nella realtà è difficile che una superfice sia perfettamente riflettente per via delle impurità, ma molti materiali si possono approssimare ottimamente in questo modo.

rifS

Quindi ci troviamo di fronte a tre differenti modi di riflettere la luce che possono essere rappresentati in questo modo:

riflessione Di
fig. 1

riflessione Gi
fig. 2

riflessione Si
fig. 3

1) Un raggio di luce in una superficie diffusa viene riflesso in tutte le direzioni (fig. 1), per questo la superfice appare illuminata in modo uniforme.

2) In una superfice come quella dei metalli satinati la luce viene riflessa principalmente nella direzione della riflessione speculare con delle dispersioni di raggi dipendenti dalle "microimperfezioni" presenti sulla superfice (fig. 2).

3) Nelle riflessioni speculari, la luce viene riflessa con un angolo di entrata uguale a quello di uscita, proprio come negli specchi (fig. 3).

Trasparenza e Traslucenza.

Il DGS può essere usato nella stessa identica maniera per simulare materiali trasparenti come il vetro o traslucenti come carta o quel tipo di vetri che non permette di distinguere bene ciò che c'è dall'altro lato. Infatti nella realtà alcuni materiali vengono attraversati dai raggi di luce (come il vetro), ma spesso questi raggi non continuano la loro corsa seguendo una linea retta, ma vengono trasmessi in varie direzioni secondo le proprietà del materiale.

rifraz Di
fig. 4

rifraz Gi
fig. 5

rifraz Si
fig. 6  

Anche un'altro fattore influisce sulla direzione dei raggi, è sempre dovuto dalla natura del materiale ed è rappresentato in fisica con l'indice di rifrazione, il famoso IOR.
Non mi dilungo troppo, ma in pratica lo IOR indica di quanto viene deviato un raggio entrando in un materiale differente da quello in cui si trovava prima.
A tutti è capitato di vedere che una mano immersa nell'acqua del mare sembra storcersi nel punto in cui entra nell'acqua.


Mental Ray per Maya.

Ricordo che con Maya 5 ho passato ore ed ore a cercare di capire dove cavolo avevano nascosto gli shaders di MR e quando li ho trovati ho passato giorni e giorni a capire perchè cavolo li avevano nascosti, ancora oggi non ho una risposta.
Per fortuna che con Maya 6 sia tutto più facile.
Visto che questo tutorial prescinde dalle versioni utilizzate spiegerò qui come visualizzare gli shaders in Maya 5 e come caricare il plugin di MR.
Se già avete queste conoscenze saltate pure la sezione.

Attiviamo Mental Ray:

Innanzitutto bisogna che ci sia installato MR sulla vostra macchina, con Maya 5 e 6 l'installazione è automatica, con le prec. versioni bisogna avere il plugin installato.

Nel menu principale di Maya andiamo in Window->Settings/Preferences->Plug-in Manager (fig. 7).
nel Plug-in Manager c'è la voce Mayatomr.mll (fig. 8), se non c'è già mettere la spunta su "loaded" per caricare MR, se volete che si carichi in automatico ogni volta spuntate anche "auto load"

mr plugin1
fig. 7

mr plugin2
fig. 8

Attiviamo la visualizzazione degli shaders di MR:

In Maya 6 non c'è problema perchè gli shaders sono già visibili.

Per gli utenti di Maya 5 (non ho provato ma credo che funzioni anche con le versioni più vecchie) la procedura è la seguente:

Cercate il file Maya.env nella cartella "\Maya\numero versione\" dei vostri documenti, es: "C:\Documents and Settings\nome log\Documenti\maya\5.0\Maya.env" .
Dove nome log è il nome con cui si fa il login nel sistema.
Aprite il file con Blocco note o Word Pad, se il file non esiste create un file di testo con questo nome.
All'interno scrivete:

MAYA_MRFM_SHOW_CUSTOM_SHADERS = 1

Salvate, chiudete e riavviate Maya.

Ora Aprite l'Hypershade sotto Window->Rendering Editors->Hypershade e cliccando col pulsante destro o sinistro del mouse su "Create Maya node" selezionate "Create Mental Ray node" (fig. 9).

mr shaders1
fig. 9

Ecco a voi gli shaders di Mental Ray!



I parametri dello shader DGS.

Creiamo un nuovo DGS_material dall'Hypershade, selezioniamolo ed apriamo l'Attribut Editor (ctr + a).

Nota: Se nell'Hypershade non trovi gli shaders di MR leggi la sezione precedente intitolata: "Attiviamo Mental Ray".

Ecco come appare un DGS_material appena creato:

dgs material1
fig. 10

Ci sono i parametri Diffuse Glossy e Specular che sono quelli di cui ho parlato nell'introduzione allo shader seguiti da altri. Vediamoli in dettaglio:

Diffuse: regola la quantità di riflessioni diffuse.
Glossy: regola la quantitò di riflessioni sfocate.
Specular: regola la quantitò di riflessioni speculari.

A tutti e tre possono essere assegnati dei semplici colori o delle textures.

Nota: le tre riflessioni possono essere combinate a piacere tra loro per ottenere diversi tipi di materiali.

Shiny: regola la quantità di sfocaura delle riflessioni Glossy, più il valore è basso più il materiale è sfocato. Valori vicini al 1000 ottengono all'incirca lo stesso risultato delle riflessioni speculari (fig. 12).

dgs S
fig. 11 (riflessione speculare)

dgs G1000
fig. 12 (riflessione glossy 1000)

dgs G30
fig. 13 (riflessione glossy 30)

dgs G10  
fig. 14 (riflessione glossy 10)

dgs G5
fig. 15 (riflessione glossy 5)  


Nota: più il valore Shiny è basso e più per ottenere riflessioni definite bisogna aumentare il Sampling ed il contrasto.

dgs G5 sampl1  
fig. 16 (glossy 5, Sample 0 2, Contrast 0.1)

dgs G5 sampl2
fig. 17 (glossy 5, Sample 1 3, Contrast 0.05)

dgs G5 sampl3
fig. 18 (glossy 5, Sample 1 4, Contrast 0.05)

Settaggi delle fig. 16 - 17 - 18 (fai attenzione ai cambiamenti nel rendering date dalle impostazioni del sampling, ma sopratutto ricorda che aumentando il sampling ed il contrast aumenti di molto i tempi di resa):

settings1
fig. 19

settings2
fig. 20  

settings3
fig. 21


Shiny U, Shiny V: il DGS permette di ottenere riflessioni anisotropiche (tipo brushed metal o CD-ROM) utilizzando questi due valori anzichè il solo Shiny. Bisogna impostare Shiny = 0 per utilizare questi valori.

Transp: naturalmente indica la trasparenza, 0 è non trasparente, 1 completamente trasparente. Alla trasparenza possono essere associate riflessioni di tutti e tre i tipi (Diffuse, Glossy o Specular) come vedremo negli esempi di materiale.

Ior: indica l'indice di rifrazione del materiale. In giro per il web si trovano facilmente tabelle con indici di rifrazione dei vari materiali, ad esempio per l'acqua è 1.33, per alcuni tipi di verto 1.57-1.75, ecc...

Lights: Serve ad indicare al materiale quali luci lo influenzano e quali no. Nelle versioni precedenti a Maya 6 quest'opzione non era visualizzata e la connessione alle luci veniva fatta con il connection editor o con il mel (il mel è linguaggio di scripting di Maya).



Applicare un DGS ad una modello in Maya:

Una volta creato un DGS per applicarlo il modo migliore è:

Creiamo un materiale di Maya.
Selezioniamolo e rinominiamolo "DGS_mio".
Clicchiamo su "Go to output connection" (fig. 22).

assegna1
fig. 22

Nella sezione "mental ray" c'è "Material Shader" (fig. 23) trasciniamoci dentro, col pulsante centrale del mouse, lo shader DGS precedentemente creato.

Spuntiamo "Suppress all Maya shaders" (fig. 23).

assegna2
fig. 23

Selezioniamo l'oggetto a cui volgiamo applicare il materiale, pulsante destro sullo shader DGS_app selezioniamo "assign to selection".

Con Maya 6 (con le prec. versioni non ho provato) si puo assegnare direttamente il DGS all'oggetto come un comune materiale di Maya.

Collegare le luci al DGS.

Se nella scena ci sono luci (se usi solo l'HDRI col Final Gather non serve) colleghiamo tutte le luci allo shader.

Basta trascinare col pulsante centrale del mouse l'icona della luce dall'hypershade nell'apposito spazio lights del DGS (fig. 24 - 25).

luce1
fig. 24

luce2
fig. 25

Oppure trascinando col tasto centrale l'icona della luce in quella del DGS, sempre nell'Hypershade, appare un menu, selezioniamo "Other", appare il connection editor. A sinistra, c'è la luce, selezioniamo "Message", a destra, c'è il DGS, selezioniamo il primo slot delle luci libero (fig. 26).

luce3
fig. 26


Nota: per collegare altre luci, deseleziona e riseleziona il DGS per far aggiungere un nuovo slot per una nuova luce.



Il DGS_material_photon.

Per finire, se nella nostra scena abbiamo bisogno di utilizzare i fotoni, è necessario, per una corretta simulazione del materiale, impostare il materiale per i fotoni.
Il DGS_material_photon esiste proprio per questo motivo.
Si trova tra gli shaders di MR sotto la voce "Photonic Materials" ed indica il tipo di materiale ai fotoni.
Per una simulazione corretta il DGS_photon deve avere le stesse impostazioni del DGS normale, ma per effetti particolari si possono assegnare valori diversi ai due shaders.

Il DGS_photon va applicato al materiale di Maya (quello che sopra abbiamo chiamato "DGS_mio") allo stesso modo del DGS normale, ma nella casella "Photon Shader" (fig. 27) anzichè in "Material Shader".

assegna phton
fig. 27



Esempi di materiali.

Ora che avete tutte le nozioni tecniche di base per utilizzare lo shader DGS passiamo alla realizzazione di qualche materiale.
Mi limiterò a postare i settaggi, qualche immagine di esempio e qualche nota, potete scaricare le scene con i materiali, e studiarvele meglio, dal link che ho inserito all'inizio del tutorial nella sezione introduttiva.
Le scene sono illuminate con la tecnica dell'HDRI tramite IBL ed usano l'immagine degli Uffizi presente sul sito di Debevc, il link si trova sempre all'inizio del tutorial.

Vetro:
Per il vetro c'è da notare una cosa, nella realtà non esiste un vetro trasparente al 100%, quindi se volete simulare un vetro realistico non dovete settare la trasparenza a 1 ma ad un valore un pò inferiore. La quantità di trasparenza influisce anche sulle riflessioni, infatti il vetro è sia un materiale riflettente che rifrangente (spero si scriva così), e se date trasparenza 100% il DGS non avrà riflessioni.
Osservate le immagini:

vetro t1

vetro t09

Nella prima il materiale è settato con Trasp = 1 e non ha riflessioni, mentre nella seconda il materiale ha Traps = 0.9 e sono presenti delle riflessioni come nella realtà.

Settaggi:*/B]
Diffuse = 0 0 0;
Glossy = 0 0 0;
Specular = 1 1 1;
Trasp = 0.9;
Ior = 1.75.

*sono riportati solo i settaggi che hanno influenza per questo materiale, per Diffuse, Glossy e Specular sono espressi in RGB [0-1].



Vetro Glossy.
Anche per questo tipo di vetro, che per intenderi è quello tipo che non lascia vedere bene attraverso come quello dei bagni, valgono le considerazioni fatte per il vetro normale.

satinato

Settaggi:*/B]
Diffuse = 0 0 0;
Glossy = 1 1 1;
Specular = 0 0 0;
Shiny = 10;
Trasp = 0.9;
Ior = 1.75.

*sono riportati solo i settaggi che hanno influenza per questo materiale, per Diffuse, Glossy e Specular sono espressi in RGB [0-1].



Metallo cromato.

metallo

[b]Settaggi:*/B]
Diffuse = 0 0 0;
Glossy = 0 0 0;
Specular = 1 1 1;

*sono riportati solo i settaggi che hanno influenza per questo materiale, per Diffuse, Glossy e Specular sono espressi in RGB [0-1].



[B]Legno lucidato.


legno

[b]Settaggi:*/B]
Diffuse = texture procedurale "Wood" di Maya;
Glossy = 0 0 0;
Specular = 0.2 0.2 0.2;

*sono riportati solo i settaggi che hanno influenza per questo materiale, per Diffuse, Glossy e Specular sono espressi in RGB [0-1].



Spero che questo tutorial vi possa essere utile, comunque per ogni commento, critica, per segnalare errori, imperfezioni scrivetemi pure.
Buon lavoro a tutti. ;)

[B]Alessandro Pantanella



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