Vai al contenuto
pantich78

Lo Shader Dgs Di Mental Ray

Recommended Posts

Lo shader DGS di Mental Ray.

Cos'è e come usarlo.

di Alessandro Pantanella.

salepepe.jpg

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.jpg

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.jpg

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.jpg

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

riflessione_Di.gif

fig. 1

riflessione_Gi.gif

fig. 2

riflessione_Si.gif

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.gif

fig. 4

rifraz_Gi.gif

fig. 5

rifraz_Si.gif

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.gif

fig. 7

mr_plugin2.gif

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.gif

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.gif

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.jpg

fig. 11 (riflessione speculare)

dgs_G1000.jpg

fig. 12 (riflessione glossy 1000)

dgs_G30.jpg

fig. 13 (riflessione glossy 30)

dgs_G10.jpg

fig. 14 (riflessione glossy 10)

dgs_G5.jpg

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.jpg

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

dgs_G5_sampl2.jpg

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

dgs_G5_sampl3.jpg

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.gif

fig. 19

settings2.gif

fig. 20

settings3.gif

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.gif

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.gif

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.gif

fig. 24

luce2.gif

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.gif

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.gif

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.jpg

vetro_t09.jpg

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.jpg

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.jpg

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].

Legno lucidato.

legno.jpg

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. ;)

Alessandro Pantanella

post-1-1102318933_thumb.jpg


Modificato da D@ve

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao Pantich78..

Favoloso!

Mi sto giusto avvicinando a Maya e devo dire che il tutorial

è veramente ben fatto e chiaro...finalmente :)

Un saluto

..con profondo rispetto...

NMRK

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

si in effetti le critiche ai due materiali sono giuste...se ci si prova a ricordare le "sferedi vetro" tipo maghe non son così...

e anche il legno ha un'iper laccatura...nemmeno sugli yacht si vedono legni così lucenti...

...cmq credo che questi siano soprattutto esempi di settaggi...il risultato è fine a sè stesso...

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

davvero un grande tutorial non c'è che dire...

come direbbe galeazzi

sciapò! :P

p.s.

anche secondo me vetro e legno non sono resi perfettamente, ma quelli nel tutorial credo vogliano essere degli esempi per settare il dgs più che prove di realismo sui materiali ;)

p.p.s.

ho provato il dgs come lambert è va come una scheggia, oltre che essere molto semplice da settare ;)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
complimenti......ottimo chiaro ben fatto......mi sapresti dire che differenze ci sono rispetto al mental ray di max 6?

grande pantich!!!!!!!!!!!

solo una cosa...il vetro sembra un metallo super cromato...e anche il legno non mi convince tanto...

Grazie ragazzi, la mia piu´grande soddisfazione e´sapere che il tutorial abbia raggiunto il suo fine di essere chiaro e che vi sia piaiuto :D

X il poco realismo di alcuni materiali sono pienamente d´accordo ma in effetti come dite acnhe voi sono esempi di settaggi che servono a far capire il funzionamento del DGS, sarebbe troppo semplice realizzare dei materiali cosi´ci sono moltissimi altri fattori da considerare, ma sarebbe venuto fuori un tutorial lunghissimo ed io setsso nn ne sarei uscito piu´ ^_^

Comunque potete usare questi materiali come base.

Buon lavoro a tutti ed ancora grazie ;)

Alessandro

PS: X kawazx12r, mi dispiace nn ho mai usato MentalRay in 3DSMax e nn ho la piu pallida idea di cosa cambi

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

davvero ben fatto.

il vetro puo sembrare un metallo cromato per via della mappa hdri che viene riflessa e per via della rifrazione....se non ci fosse una mappa HDRI e un piano e uno sfondo semplici, si vedrebbe la trasparenza del legno.....anche a me spesso sembrano poco realistici, ma se si osserva cosa avviene nella realtà, si vede che è proprio così....

ciao a tutti

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

una domandina...

per curiosita' il file vetro.ma, preso cosi come lo ha postato alessandro, per renderizzarlo ci ho messo 11min....e' normale? o ce' qualcosa che blocca il mio computer... :(

Se fosse cosi lungo il processo, per fare un po' di esperimenti ci vuol proprio un bel po' di tempo...:(

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
una domandina...

per curiosita' il file vetro.ma, preso cosi come lo ha postato alessandro, per renderizzarlo ci ho messo 11min....e' normale? o ce' qualcosa che blocca il mio computer... :(

Se fosse cosi lungo il processo, per fare un po' di esperimenti ci vuol proprio un bel po' di tempo...:(

non ho ancora provato a fare dei test, ma da quelli che avevo fatto io qualche tempo fà, mi sembra verosimile...

il dgs è uno shader complesso, che può essere utilizzato per dare molti effetti diversi ai materiali, ma ha come controparte un maggior carico di info da passare al render e quindi tempi di attesa molto lunghi ;)

aspetto conferme anche da pant...

ciau

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×