Finora abbiamo trattato maggiormente il Principled Shader (il cui impiego resta consigliato anche in Cycles), ma è giunto il momento di dare un’occhiata ad altri nodi shader che Blender mette a disposizione.
Sicuramente avrete notato la presenza di BSDF nel nome di molti shader, incluso il principled. BSDF è l’acronimo di Bidirectional Scattering Distribution Function (funzione di distribuzione bidirezionale della dispersione) ossia la funzione matematica che sta dietro il calcolo probabilistico che Cycles compie per determinare la riflessione dei raggi lungo varie angolazioni. Un tipo di algoritmo che non riguarda Eevee, motivo per cui nel capitolo precedente non ho accennato al significato di BSDF. Tuttavia a noi non interessa il lato teorico (molto complesso) ma quello pratico. Partiamo dunque dallo shader Diffuse
Questo shader riflette solo il colore diffusivo senza riflessioni di alcun tipo (come accade con il Principled Shader coi parametri metallic e specular azzerati). Diffuse in eevee non mostra alcuna differenza tra diversi valori di roughness. Ma in cycles, dove tutto è governato da algoritmi più precisi, il roughness avrà un effetto piuttosto evidente, poiché una superficie ruvida diffonde la luce in modo diverso rispetto a una superficie liscia. Nell’immagine seguente potete vedere un confronto tra roughness zero (metà in alto) e uno (metà in basso).
Shader Glossy BSDF (Riflessione), in questo shader è molto marcato l’effetto del Roughness. Aumentandolo, l’immagine riflessa diviene sempre più sfocata (come un effetto blur) e le zone dov’è concentrata la luminosità (specular) tendono ad espandersi.
Glass BSDF (vetro con aree specular: trasparenza più indice di rifrazione). Anche per questo shader un livello minimo di Roughness è indispensabile per creare delle zone di riflessione specular. Lo stesso shader con Roughness pari a 0,2 appare invece molto più opaco con l’immagine trasmessa poco definita:
Refraction BSDF rifrazione con IOR e Roughness (no specular)
Anisotropic BSDF, shader adatto alla resa del metallo spazzolato (acciaio, alluminio). In corrispondenza di valori non nulli del parametro roughness, la riflessione varia in funzione della direzione con cui la superficie viene esposta alla fonte luminosa, o al punto di vista.
Emission, shader che illumina le superfici circostanti trasformando la mesh in un oggetto light; cosa che non accade in eevee. Emission è incluso anche nel Principled Shader, con la differenza che il quel caso è possibile impostare il colore e non la forza, la quale dipenderà dal parametro Value del colore scelto (nella base HSV).
Velvet BSDF, shader adatto a simulare tessuti, seta, velluto.
Sub Surface Scattering (SSS) dove troviamo la scelta della funzione di decadimento di default impostata a Random Walk. Scale è un fattore di scala per la diffusione della luce. Inoltre potremo scegliere il colore (lunghezza d’onda) a maggiore probabilità di riflessione che risulterà il colore dominante della superficie illuminata, più il raggio di scattering per ciascun canale RGB e l’IOR
Toon BSDF ricrea un’illuminazione simile a quella dei cartoni animati sia per materiali diffusivi che riflettenti.
Translucent BSDF rende il materiale traslucido, le probabilità che i raggi luminosi attraversino la superficie è data dal colore (Bianco = 100%).
Nella definizione dei materiali in Cycles è fondamentale l’uso di due particolari nodi che servono a sommare o mixare tra loro diversi shader tramite un valore Fac variabile da zero a uno. Parliamo di Mix Shader e Add Shader, due nodi con i quali è possibile creare fin da subito materiali piuttosto elaborati. Vediamo subito un esempio molto semplice: come aggiungere allo shader diffuse una leggera riflessione specular. Nella realtà una qualsiasi superficie abbastanza lucida o liscia, finirà col riflettere una discreta quantità di raggi luminosi provenienti dall’ambiente circostante, magari non in modo tale da formare sulla propria superficie un’immagine riflessa che sia nitida o percettibile; per tal motivo viene a crearsi sulla superficie quella tipica zona di massima luminosità causata dalla riflessione delle fonti di luce diretta (come simula il fattore specular del principled shader). Di contro una superficie totalmente a specchio non formerà queste aree, a meno che non abbia un leggero valore di roughness come visto per lo shader Glossy. Quindi dovremo soltanto mixare allo shader diffuse una piccola quantità di riflessione non nitida, ricorrendo allo shader Glossy con un po’ di roughness. Il tutto regolato dal node fresnel per un maggiore realismo.
Mixando e sommando tra loro shader diversi potremo ottenere materiali anche molto complessi, con il rischio di appesantire eccessivamente il rendering della scena, e di ottenere materiali non fisicamente coerenti con ciò che essi rappresentano. Motivo per cui potrete sempre ricorrere al principled shader, specie se in possesso di adeguate texture PBR.
Del Principled Shader conosciamo già tutto. In Cycles potremo usufruire dell’effetto anisotropico (assente in eevee) per le riflessioni metal e specular, a patto che il roughness sia superiore a zero. L’effetto dei parametri Sheen (lucentezza) Sheen Tint e Clearcoat (molto simile alla riflessione speculare) sono davvero minimi. Rispetto ad Eevee risulta attivo il Transmission Roughness che riguarderà i soli raggi che attraversano la superficie e non quelli riflessi specularmente.
Veniamo ora agli shader volumetrici messi a disposizione da Blender e utili per la simulazione di sistemi gassosi come fumo, vapore, nubi, nebbia, etc. Nella grafica 3D quando sentirete parlare di effetti volumetrici preparatevi a qualcosa che potrebbe facilmente sfociare in un’enorme quantità di calcoli per le nostre infaticabili CPU e GPU. Gli shader volumetrici non fanno eccezione a tale regola e a maggiori valori di precisione, corrisponderanno notevoli tempi di rendering. Questi shader rendono visibili qualsiasi modello dotato di volume interno (possiamo escludere tutte le superfici aperte e prive di spessore) poiché essi diffondono o assorbono parte della luce che attraversa la mesh come se essa fosse riempita da numerose particelle simili alle molecole di un gas. La precisione per questo tipo di materiali si regola nel contesto render delle properties, pannello Volume dove troverete i parametri Step Rate Render/Viewport e Max Steps. Il primo rende il calcolo sempre più preciso per valori minori di 0.1 (è possibile differenziare la precisione del rendering della viewport) mentre l’ultimo può essere aumentato a piacimento.
L’importante è ricordarsi che tutto dipende anche dal numero di rimbalzi massimi (Max Bounces) di tipo Volume impostati nel pannello Light Paths (tenetevi bassi, basta 1 o 2). I nodi degli shader volumetrici hanno un socket d’uscita verde chiamato Volume da collegare all’omologo nodo input del Material Output (nulla vieta l’uso simultaneo di shader surface e volume).
Volume Scatter simula masse gassose diffondendo la luce che lo attraversa; qui vanno impostati i valori di densità e anisotropia, oltre che il colore. Volume Absorption si limita invece ad assorbire la luminosità ricevuta secondo un valore di densità che lo renderà di una tinta progressivamente più scura di quella scelta in color.
Ovviamente è possibile fondere e unire tra loro più shader volumetrici ricorrendo ai nodi mix e add visti in precedenza. Questo approccio tuttavia potrebbe facilmente portare a creare dei materiali fisicamente non coerenti, fuori dal paradigma PBR (un po’ come accade per gli shader surface). Per questo motivo potremo ricorrere al terzo e ultimo shader volumetrico offerto da Blender: il Principled Volume, con cui creare masse gassose più complesse e realistiche.
Qui troviamo i parametri visti in precedenza: Color, Anisotropy e Absorption Color, con in più nuove impostazioni come l’Emission Strength e Color che consentiranno al volume di emettere luce (soprassediamo sui restanti nodi input).
Ora che abbiamo visto tutti gli shader di Cycles, analizziamo nel contesto Object, icona il pannello Visibility
dove troviamo l’importante casella Shadow Catcher; attivando questa opzione il materiale dell’oggetto verrà completamente ignorato dal rendering e mostrerà le sole ombre proiettate su di esso da altre mesh (con un certo livello di trasparenza). Questa opzione è necessaria per renderizzare delle scene in modo coerente con gli sfondi 3D HDR.
Nel sub pannello Ray Visibility potremo scegliere:
- con Camera se l’oggetto dovrà essere visibile o meno
(quando invisibile ai raggi camera esso continuerà a proiettare ombre, diffondere il proprio colore ed essere riflesso o rifratto). - con Diffuse se l’oggetto diffonderà o meno il proprio colore
(invisibilità ai raggi diffuse) - con Glossy se l’oggetto sarà visibile o meno nei riflessi
(invisibilità ai raggi glossy) - con Transmission se l’oggetto sarà visibile nella rifrazione dei materiali semi trasparenti
(invisibilità ai raggi transmission) - con Shadow se l’oggetto proietterà ombre
(invisibilità ai raggi ombra) - con Volume Scatter se sarà diffuso dallo shader volumetrico Scatter
(invisibilità ai raggi volume scatter)
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.