fbpx

3.2 – Eevee – Shading

Iniziamo subito ad analizzare il workspace “Shading” pensato per facilitare la creazione dei materiali da applicare agli oggetti renderizzabili (superfici e volumi). Questo layout è suddiviso in sei aree principali: alla destra della 3D View troviamo la solita accoppiata Outliner e Properties, mentre a sinistra potete vedere il File Browser per la ricerca delle texture, e l’Image Editor per visualizzarle. Vi ricordo che è possibile massimizzare o minimizzare qualsiasi finestra con la combinazione CTRL-Barra Spaziatrice. Sotto la 3D View è collocato lo Shader Editor, ossia il potente sistema di nodi utilizzato da Blender per definire i materiali in Eevee e Cycles. Nell’immagine a destra trovate un progetto che a prima vista potrebbe apparire discretamente complesso, ma che in realtà non lo è affatto, in quanto tutte le superfici adottano il solo Principled Shader con alcune texture PBR (di cui parleremo in seguito). Partiamo allora da qualcosa di ancora più elementare. Cancellate il cubo e la lampada di default, per inserire nella scena la sola primitiva Monkey a cui applicheremo il modificatore subdivide surface (tre suddivisioni) e lo shade-smooth. A questo punto passiamo al workspace Shading e concentriamoci per prima cosa sulla 3D View che di default utilizzerà la visualizzazione Material Preview (anteprima) la terza delle tre icone in alto a destra.

Quest’anteprima offre un’illuminazione HDRI (High Dynamic Range Imaging) già pronta all’uso. Approfondiremo il discorso dell’HDR nel paragrafo 4.5, per ora vi basti sapere che si tratta di particolari immagini fotografiche a 360° che se impostate come background sferico sono in grado di conferire alla scena un’illuminazione del tutto realistica e naturale. Vedremo lo sfondo hdri nell’anteprima material solo in funzione della barra World Opacity e di quella Blur (per sfocarlo) mentre saranno sempre visibili gli effetti di tale sfondo sulle superfici degli oggetti (ombreggiatura, riflessioni, rifrazioni, etc). Non vedremo questa illuminazione neanche nel rendering (F12) poiché la sua funzione è unicamente quella di facilitare la modellazione e la creazione dei materiali in real time, permettendoci di verificare fin da subito le principali peculiarità di Eevee. Cliccando l’immagine di anteprima (una sfera riflettente) appare la lista completa di tutti gli sfondi HDRI disponibili.

La primitiva Monkey da noi inserita nella scena non ha di default alcun materiale assegnato, infatti troverete il node editor vuoto. Cliccate il pulsante posto nell’header del node editor e vedrete comparire due differenti nodi collegati tra loro da una linea che congiunge i socket di colore verde . I nodi in questione si chiamano Principled BSDF e Material Output. Il Primo è l’elemento portante del sistema PBR utilizzato da Eevee e Cycles. Prima della sua introduzione si operava combinando tra loro degli shader elementari in modo spesso arbitrario e senza un criterio generale in grado di garantire una simulazione coerente e realistica del materiale ricercato. Nel 2012 la Disney ha pubblicato le linee guida del Principled Shader, il cui scopo è la creazione dinamica di qualsiasi tipo di materiale. Esso semplifica la vita a moltissimi grafici, oltre che a tutti i principianti, e rende facilmente portabili i materiali da un engine all’altro.

Prima di dare uno sguardo più approfondito al funzionamento dei nodi, divertiamoci un po’ a sperimentare con questo Shader e il realtime di Eevee. Cliccando su Base Color (di default un grigio molto chiaro) potrete scegliere quale colore assegnare al materiale tramite la color wheel o i valori RGB. Aumentando al massimo la barra Specular e azzerando il parametro Roughness otterrete un materiale lucido (glossy) in grado di riflettere l’ambiente circostante.

La riflessione Specular sfrutta principalmente le sfumature che vanno dal Base Color al bianco, in modo da restituire un’immagine riflessa piuttosto evidente sebbene non ben definita. Specular Tint aumenta l’influenza del base color sulla riflessione. Roughness (ruvidezza) ha il compito di simulare la presenza di micro asperità superficiali, tali da rendere il materiale progressivamente meno lucido. Con un Roughness pari a 0,25 otterremo un aspetto di tipo plastico

Per ottenere delle riflessioni maggiormente definite dovremo utilizzare un materiale metallico. Impostiamo un Base Color bianco dopodiché aumentiamo al massimo la barra Metallic con il Roughness pari a zero (Specular in questo caso diviene irrilevante).

La riflessione è ora perfettamente definita, ma verrà fortemente influenzata dal Base Color qualora esso fosse diverso dal bianco. Con questi semplici shader siamo già in grado di osservare gli effetti di alcune funzioni avanzate di Eevee. Rechiamoci al contesto Render delle properties, icona e attiviamo l’Ambient Occlusion.

L’occlusione ambientale è un’ombreggiatura determinata dal maggiore numero di rimbalzi dei raggi diffusi/riflessi (che così perdono rapidamente energia) nelle zone di contatto tra superfici diverse o dentro i volumi occlusi. Sebbene il modello di Eevee sia semplificato rispetto all’elaborazione nativa del rimbalzo dei raggi di Cycles, esso funziona piuttosto bene. Sulla primitiva Suzanne potrete osservare immediatamente questa ombreggiatura nella zona degli occhi.

I parametri principali dell’AO sono pochi e semplici:

  • la distanza in cui esso avrà effetto
  • la barra Factor per la durezza di tale ombreggiatura (di default il valore massimo è 1, ma potrete digitare dei valori superiori)
  • la precisione.

Il calcolo delle riflessioni in Eevee non è nativo come nel Ray Tracing (o il moderno Path Tracing). Se proviamo ad accostare due modelli dotati di materiale riflettente, questi non compariranno nell’immagine riflessa sull’altro (in pratica vedremo riflesso il solo sfondo HDRI più eventuali fonti di luce). Ritorniamo allora al materiale metallico utilizzato in precedenza e dal contesto Render delle properties, attiviamo il pannello Screen Space Reflection

La riflessione ora non riguarda più il solo background, ma si estende alle superfici circostanti, incluse quelle appartenenti allo stesso modello. Nell’immagine di esempio in alto, potete vedere il riflesso delle orecchie sulle tempie della scimmia.

Analizzeremo in seguito alcuni metodi per migliorare la qualità delle riflessioni in tempo reale tramite gli oggetti Light Probe che trovate nel menù Add della 3D View. Le semplici nozioni appena apprese sono già più che sufficienti per iniziare a sperimentare con lo shading real time di Eevee. Torneremo a parlare del Principled Shader dopo aver approfondito il funzionamento dei nodi nel prossimo paragrafo.

In Blender la scelta del colore avviene tramite la color wheel che nel caso dei nodi appare cliccando sulla tipica area rettangolare dal colore uniforme (es: il base color). Tuttavia, come avrete probabilmente già notato, i valori numerici delle componenti RGB non variano da 0 a 255 come in tanti altri software grafici, ma sono espresse da numeri in virgola mobile, ossia con cifre decimali tra 0,00 e 1,00.

Il motivo è da ricercare nella gestione del colore di Blender che di default è l’sRGB (24bit) il più adatto all’uso naturale del software (specie per chi ne sta intraprendendo lo studio) vale a dire la visualizzazione su dispositivi come il vostro monitor. Tuttavia Blender non è un software digital painting dove se vogliamo vedere un pixel di colore bianco sul monitor dobbiamo semplicemente impostare la terna di colori RGB a 255. Il pixel di qualsiasi render è frutto di un processo di rasterizzazione che implica la simulazione del comportamento fisico della luce quando essa investe delle superfici (o dei volumi gassosi). Gli algoritmi che si occupano di questa simulazione masticano ovviamente dei numeri in virgola mobile (a singola o doppia precisione). In più a volte vi è la necessità di ricorrere a una più ampia gestione dei dati sul colore rispetto al classico truecolor. Potrete ad esempio salvare il render in formato TIFF con ben 16 bit di profondità colore per singolo canale (48 bit complessivi). Dunque se desiderate impostare un colore RGB del quale conoscete il valore con la classica terna di numeri interi compresi tra 0 e 255, potete convertirlo in esadecimale (tramite software grafico o apposito tool online) e impostarlo direttamente nel riquadro della ruota dei colori cliccando Hex:

Esempio:
Darkmagenta:
HEX #8B008B
RGB (139,0,139)

Scelto il colore all’interno della ruota, potrete variare la sua luminosità tramite la colonnina a tonalità di grigio sulla destra. In alternativa è possibile selezionare il colore da un’immagine visualizzata in qualsiasi finestra di Blender (ad esempio caricata nell’UV/Image Editor) con l’icona del contagocce in basso a destra nel pannello della ruota dei colori. Il discorso sulla gestione colore non finisce qui (in realtà è un argomento talmente complesso che meriterebbe un intero volume ad esso dedicato) più avanti parleremo infatti del pannello Color Management situato proprio nel contesto Render delle properties.

Vediamo che in questo pannello è impostato non solo lo spazio colore sRGB, ma anche un metodo di conversione chiamato Filmic che se ben utilizzato aumenterà la qualità dei render fotorealistici. Per il momento consiglio di impostare il metodo Standard nel campo View Transform e None nel campo Look.

Chiudiamo il paragrafo con un’ulteriore precisazione: lo shader editor è come vedremo successivamente la finestra dove definire qualsiasi tipo di materiale tramite un insieme connesso di nodi; ma tale combinazione apparirà in modo schematico anche all’interno del contesto Material delle properties, icona . Nei casi finora esaminati, dove è stato impiegato il solo principled shader, avremmo potuto lavorare direttamente qui, ma utilizzando delle texture e/o combinazioni di shader diversi, l’uso di questo pannello diverrebbe rapidamente scomodo. La presenza di questo contesto delle properties è più che altro un retaggio del passato, quando Blender non possedeva un node editor e si usava principalmente il motore di rendering Blender Internal. Tuttavia esso mantiene ancora una certa utilità, specie quando è necessario agire solo su qualche parametro numerico o nella gestione di più materiali applicati allo stesso oggetto (materiali multipli). Inoltre è presente il pannello Preview dove potremo immediatamente verificare la resa del nostro materiale su mesh diverse, tra cui la shader ball di blender (quella visibile nell’immagine). Più avanti ricorreremo a questo contesto anche per i settaggi del pannello Setting.

Paragrafo successivo
Paragrafo precedente

Torna all’Indice


Nell’augurarti un divertente e produttivo studio di Blender, ti ricordo che puoi supportare questo progetto in due diversi modi: con una piccola donazione (paypal) oppure acquistando la versione PDF (su lulu.com) impaginata in modo professionale e ottimizzata per la visione su Tablet.  



>Acquista l’ebook (PDF) su lulu.com in piena sicurezza con paypal e carte prepagate<