mercoledì 18 novembre 2015

TUTORIAL
SIMULARE SUPERFICI BAGNATE
CON UNA MAPPA FRESNEL
Indigo 3.8.26 - SkIndigo 3.8.25.3

Ben ritrovati! 
Questo breve tutorial è per quei curiosi tra di voi che si sono domandati come rendere più suggestiva una scena magari un po' piatta, in cui i materiali sono un pochino spenti, e non esistono spunti interessanti che catturano lo sguardo.
In questi casi vi suggerisco di lavorare un po' sui materiali che hanno estensione maggiore, all'interno della scena: generalmente si tratta dei materiali applicati ai pavimenti o alle pareti. Con l'esperienza concorderete con me che un pavimento ben realizzato può ben valorizzare una scena povera, come al contrario un pavimento gestito frettolosamente può infossare l'impatto di una buona immagine. 

Vediamo quindi oggi come realizzare un pavimento con zone bagnate, come dopo una breve pioggia: questo stratagemma genera veri e propri specchi a terra, davvero utilissimi per dare profondità ad una pavimentazione monotona.

Devo premettere che quella che segue è solo UNA delle tante tecniche che si possono utilizzare per simulare superfici di questo tipo, e tra l'altro è una delle più semplici. Per questo motivo, anche se non di resa impeccabile, trovo che il rapporto "tempo di settaggio/risultato" sia conveniente senza accanirsi su mille parametri, operazione che finisce con l'annoiarci e rende tutto più complicato. 

INIZIAMO!

Innanzitutto impostiamo un nuovo materiale di SketchUp, con una mappa di base a piacere. Io ho scelto questo pavimento in quadrotti di cemento, piuttosto banale.
















Impostiamo questo materiale su uno shader phong, in vista del fatto che alcune parti di questo materiale dovranno essere riflettenti. Per questa esercitazione ESAGERIAMO: imposto l'indice di rifrazione (IOR) su 4, che è un valore piuttosto alto: tenete presente che orientativamente:
una plastica ha valore di 1.2 
l'acqua 1.3
un legno verniciato 1.4

Un valore di 2 in genere connota comportamenti similmetallici; valori superiori comportamenti sempre più metallici.

Allo stesso tempo, impostiamo il valore exponent su 300.000, che determinerà riflessioni abbastanza nitide.












Se renderizziamo questo materiale otteniamo questo risultato, che poco ci descrive quello che sarà il materiale finale. 
Ma per il momento vediamo di accontentarci:
Questo materiale appare molto lucido (sembra quasi un pavimento di marmo piombato e lucidato), uniformemente liscio e molto riflettente.

Proseguiamo con i settaggi.



















Ci tocca ora preparare una serie di mappe addizionali, cosa che personalmente detesto fare ma più tempo ci perderete e - nella maggior parte dei casi - più efficace sarà il risultato finale. Quindi sospirone e partiamo.
Ricalcando le campiture dei quadrotti dell'immagine originale ottengo la seguente texture:














Sovrapponendola alla texture originale e giocando sui livelli otteniamo questa seconda texture:

Questa immagine identificherà quali zone dovranno essere riflettive (aree bianche) e quali non riflettive (aree nere). Valori intermedi di colore generano risultati di riflettività intermedi.












Dopo un ultimo passaggio in photoshop, fondendo insieme le precedenti mappe otteniamo questo: 

Questa mappa descriverà dove si trovano le rugosità superficiali del materiale. Le zone in cui la texture iniziale è soppiantata dal gradiente descrivono zone del materiale in cui la rugosità non presenta asperità, ma digrada da un punto più alto ad un punto più basso in maniera morbida (possiamo immaginarlo come una specie di leggerissima pendenza).
Le stesse aree corrispondono a zone di massima riflettività, se ritorniamo un attimo all'immagine precedente.


Applichiamo ora gradualmente le mappe che abbiamo creato e teniamo d'occhio cosa cambia nel nostro materiale.
Per prima cosa aggiungo la nuova texture al canale del bump (la rugosità):




























Il materiale che ottengo è simile a questo:
Ancora ci riesce difficile capire dove stiamo andando a parare, ma abbiate fede. Una cosa da osservare è quella zona liscia vicino al logo centrale, sulla sinistra: si tratta di una di quelle famose zone col gradiente, ricordate? In effetti in quel punto la superficie appare riflettente e lucida.



















Proseguiamo con l'ultimo passaggio, aggiungendo la mappa opportuna al canale Fresnel scale, come vi illustro nella immagine sottostante.



























Se renderizziamo otteniamo il preview seguente:
Per chi non lo ricordasse (e lo invito a rileggere i tutorial sui materiale di base) l'effetto Fresnel è l'effetto per cui a parità di lucentezza un oggetto appare più lucido se l'angolo di visuale si avvicina allo zero (cioè se guardiamo di sguincio la superficie), quando invece perde riflettività se lo osserviamo perpendicolarmente. 



















Il canale Fresnel Scale consente di regolare la quantità di lucentezza sulla superficie del medesimo materiale. Attraverso la mappa che abbiamo impostato, abbiamo definito che il parametro di IOR risultasse invariato nelle zone BIANCHE, e che risultasse annullato nelle zone NERE. Equivale a dire che nelle zone NERE il nostro materiale phong super-riflettente sarà sostituito da un semplice materiale diffuse

Per valutare all'atto pratico qual è il guadagno estetico, ho preparato la solita scena test.

La geometria è piuttosto basica: un marciapiede planare con il materiale che abbiamo settato, una bandina di contenimento in corten, una aiuola riempita di ghiaino (la geometria è stata distribuita con lo scatter tool di SkIndigo, che sarà oggetto di un prossimo tutorial); il tutto illuminato da una mappa HDR.

Test con il materiale diffuse:





























Test con il materiale che abbiamo settato insieme:































Spero che il tutorial vi sia stato d'aiuto!

Per qualunque domanda non esitate a scrivere un commento!


A PRESTO!

lunedì 16 novembre 2015

TUTORIAL
IL VETRO SERIGRAFATO
Indigo 3.8.26 - SkIndigo 3.8.25.3

Il vetro sabbiato, nel linguaggio di Indigo Renderer, fa parte dei materiali traslucidi caratterizzati da una percentuale di rugosità superficiale che ne limita trasparenza e riflettività; dei materiali Glossy Transparent abbiamo già trattato in un precedente tutorial, analizzando i vari parametri di base usati per per ottenere un materiale omogeneamente sabbiato. Ma come posso riprodurre una superficie non omogeneamente sabbiata?

Vediamo di esplorare insieme i passaggi principali!

Innanzitutto, occorre sapere che qualunque materiale traslucido per essere calcolato in maniera fisicamente corretta deve essere applicato ad una geometria costituente un volume chiuso: questo perché il raggio incidente deve attraversare una superficie di ingresso ed una superficie d’uscita. E’ presto fatto il parallelo con la realtà fisica: non si è mai visto un foglio di vetro, no? Per quanto sottile, un vetro ha uno spessore, e la stessa cosa va riprodotta anche nella realtà virtuale.

Immagine 1
Ho riprodotto quindi un ipotetico pannello vetrato delle dimensioni di 2x2 metri e dello spessore di 2cm (un po’ grossetto, ma utile ai nostri scopi). Ho arricchito la scena con una teiera (AMATISSIMA primitiva di 3dMaxiana memoria, generabile con un bellissimo plugin - link in fondo al post), un cubotto dietro al pannello e una base solida. Per il momento i materiali applicati sono:
1.   Grigio diffuse per la base
2.   Bianco diffuse per teiera e cubotto
3. Shader Specular per il vetro, IOR 2, trasparenza SketchUp 10











Ora devo trovare il modo di comunicare a Indigo che una delle due facce (quella più vicina a noi) del pannello vetrato dovrà essere sabbiata, con una distribuzione non uniforme.
Per prima cosa creo un secondo materiale di SketchUp che descriverà le proprietà delle parti sabbiate. Basterà duplicare il materiale “vetro” creato in precedenza e assegnare al secondo vetro uno shader Glossy Transparent.












Applico al vetro sabbiato uno shader glossy ed estremizzo un po’ la percentuale di sabbiatura, in modo da renderla evidente, con il valore 20 nel campo exponent. Ricordate che i valori vanno da un minimo di 1 (nessuna riflettività) ad un massimo di 1.000.000 (massima riflettività).































A questo punto creo un nuovo materiale, che avrà il compito di comunicare la distribuzione delle parti sabbiate: ho scaricato da internet una immagine che rappresenta pois neri su campo bianco; questa mappa porterà a risultati di facile lettura una volta ultimato il render. Nomino il nuovo materiale “Blend_dots”, ed utilizzo la mappa a pois come mappa del colore. 

Semplice semplice. 

Al materiale però applico uno shader di tipo Blend: questo tipo di shader regola il comportamento di materiali che sono il risultato di una fusione di due o più sottomateriali. Al materiale A assegno dal menu a tendina il materiale di SketchUp “vetro standard”, e al Materiale B assegno il vetro sabbiato.




















Se eseguo il rendering della preview del materiale ottengo questo:























Nella porzione di preview che raffigura il riflesso del pannello luminoso, rilevo che attualmente i pois rappresentano le parti lucide, quando invece vorrei che fossero le parti di vetro sabbiato. Per correggere la cosa, basterà invertire la mappa a pois. Questa operazione può essere effettuata direttamente attraverso SkIndigo, come illustrato qui a lato.


















Otteniamo quindi: 























BENE! CI SIAMO QUASI!

Non ci resta che assegnare il materiale “Blend_dots” alla faccia del pannello di vetro che vogliamo “serigrafare”. Per la mappatura di questo materiale, utilizziamo come al solito i classici strumenti di mappatura di SketchUp. Otteniamo un risultato di questo tipo:















Renderizzando l'intera scena otterremo la seguente immagine























E’ possibile utilizzare una qualunque mappa per ottenere risultati adatti ai vostri scopi. Di seguito riporto alcuni di esempi realizzati con la medesima tecnica.
In tutte le immagini è possibile osservare una sottile colorazione azzurro-verde data dalla percentuale di assorbimento del colore del vetro (il parametro è controllato dallo slider dell'opacità del materiale di SketchUp: lo avevamo impostato a 10 ricordate? Ma non dimenticate che l'assorbimento varia a seconda dello spessore dell'oggetto cui è applicato!).

Inoltre, osserviamo che nelle zone della serigrafatura la teiera non viene riflessa. Ciò significa che la serigrafatura è risultato di un trattamento superficiale, che modifica la riflettività del materiale, come avviene a tutti gli effetti nella realtà fisica.















































Grazie per aver seguito questo tutorial!

Il plugin per generare la teiera parametricamente in SketchUp è una creazione del mitico ThomThom e lo trovate a questo link.

Se volete esplorare i parametri della scena, la metto a disposizione qui sotto.


A PRESTO!

lunedì 2 novembre 2015


Mi è capitato di recente di rispolverare (..è il caso di dirlo!) un vecchissimo argomento: avete presente quel fenomeno per cui in un ambiente polveroso i raggi solari che penetrano all'interno diventano quasi...tangibili? In un certo senso è vero: questa suggestiva condizione dipende dalla presenza di corpuscoli solidi in sospensione nell'aria, normalmente si tratta di polvere, ma si può ricreare lo stesso effetto anche utilizzando farina o altri materiali a grana microscopica. 
Mi sono domandato, insieme all'amico Max, se è possibile ricreare questo effetto attraverso Indigo e SkIndigo: ho quindi preparato una semplicissima scena per i miei esperimenti; nulla di che, intendiamoci: il materiale è un biancone diffuso, il modello della panca è scaricato dalla warehouse. 

Unica particolarità è il pavimento: non si tratta di una texture ma di geometria generata dall'OTTIMO plugin FloorGenerator di sdMitch (sono in ordine alfabetico), capace di disegnare in pochi secondi geometrie anche complesse (c'è addirittura un'opzione per la rastrematura degli spigoli), utilissime per i nerd del rendering ultrarealistico!


La nebbia è generata dallo strumento "Nebbia" di SketchUp (non che serva una grande immaginazione..): basta impostare lo slider di sinistra sullo 0%, e lo slider di destra abbastanza vicino al 100%; indichiamo così che a distanza zero da noi la nebbia non ha densità, e che ha massima densità quasi all'infinito: in sostanza è una nebbia MOLTO rarefatta, tanto che nel viewport di SketchUp non sarà quasi possibile vederla.

La nebbia di SketchUp nell'esportazione a Indigo verrà convertita in una sfera cui è applicato un "medium" SSS (Sub-Surface Scattering): in sostanza è come se la nostra scena fosse racchiusa in una sfera che contiene nebbia. 
La dimensione di questa sfera è data dalla geometria presente nell'intera scena: ho preferito aggiungere un paio di piccole facce fuori dall'ambiente chiuso in modo da allargare un tantinello la dimensione della sfera.  

Vi linko al modello, così in caso vogliate cimentarvi avete una scena da cui partire!



A presto!