Exit

Voglio condividere con voi un’evoluzione del mio precedente Texture-based Generic Shader che ho voluto integrare con un node group per la creazione di materiali PBR in modo da consentirne l’utilizzo anche in assenza di texture e soddisfare così una più ampia gamma di necessità: ecco perché l’ho chiamato (con grande umiltà) Mega Shader!!

Oltre all’implementazione di un PBR Surface node group, che consente la creazione di materiali PBR Dielectric, Metalli e Glass, ho apportato alcune modifiche alla struttura del Texture Manager in modo da correggere alcune imprecisioni nella gestione delle mappe di Gloss e Reflection.

Note:
Mega Shader non contiene alcuna texture

Non ho previsto l’utilizzo di Displacement map perché ritengo (ma è solo la mia opinione) che quel tipo di texture restituisca migliori risultati se applicata direttamente alla mesh con il Displace Modifier.

Utilizzo

Lo shader contiene tre node group: PBR Surface per la creazione di materiali PBR, Texture Manager per la gestione dei parametri delle texture e Scaling controls per la gestione delle coordinate di mappatura e della scala delle texture utilizzate.

“PBR Surface” node group

Il PBR Surface node group può essere utilizzato senza l’ausilio di texture per la creazine di materiali PBR di tipo Dielectric, Metallic e Glass. I parametri di settaggio, validi per tutti i materiali, comprendono il Diffuse Color, Roughness e Reflection Boost, IOR e l’input Normal; per i materiali di tipo metallic è inotre possibile settare un secondo colore (Rim color), mentre per il materiale Glass è possibile aggiungere un effetto di Volume Absorption, controllato dai relativi valori di color e density, collegando il relativo output all’input Volume del Material Output.

Questo node è stato strutturato sulla base della serie di tutorial su PBR shaders di CynicatPro.

“Texture Manager” node group

Per avere un materiale texture-based che risponda alle leggi del PBR è sufficiente caricare le texture a disposizione e collegare i rispettivi giunti tra i due node group.
Il Texture Manager funziona essenzialmente come il mio precedente Texture-based Generic Shader, salvo le ottimizzazioni precedentemente citate. Quindi molto semplicemente se ho una diffuse map la carico nel relativo nodo e collego i giunti Color tra i due nodi; lo stesso in presenza di una normal map, collegando i giunti Normal.

Analogamente possiamo controllare i livelli di Roughness e Reflection Boost attraverso l’uso rispettivamente di Gloss map e Reflection map; una volta caricate le mappe e collegati i giunti di Roughness e Reflection, i relativi valori potranno essere controllati dagli sliders del Texture Manager.

L’AO map viene mixata alla Diffuse map mediante un nodo Multiply e la sua resa è pertanto ottimizzata con l’utilizzo combinato delle due mappe; infatti in mancanza di una diffuse map, collegando i giunti Color si otterrà il famoso effetto “purple”. Sarà eventualmente possibile usare una mappa AO da sola (anche se non riesco ad immaginarne l’utilità!!) semplicemente scollegando l’input Diffuse Map del texture manager e gestendo il colore diffuse da tale nodo; in questo caso l’AO map verrà mixata al colore RGB impostato.

Il Texture Manager prevede anche la possibilità di aggiungere fino a due effetti di overlay, uno che influenzi la Roughness (es. impronte digitali o residui di pulizia ecc.) ed uno che influenzi il rilievo della superficie (es. graffi, scalfiture ecc.).
La Gloss Overlay map influenza la Roughness e pertanto richiede che siano collegati i relativi giunti tra i due nodi, indipendentemente dalla presenza di una Gloss map generale. Una volta caricata la texture e collegati i giunti, potrà essere controllato il grado di interazione dell’effettto sulla Roughness complessiva attraverso lo slider Gloss Overlay Amount.

L’overlay di superficie (Surface Overlay) prevede invece la possiblità di utilizzare sia una normal map per il rilievo, controllabile attraverso lo slider Surface Overlay Depth, sia una mappa B/W per scurire (o schiarire) le scalfiture (analoga alla AO), controllabile attraverso lo slider Surface Overlay Darkness.
La Surface Overlay NORMAL map viene mixata alla Normal Map generale e la sua resa è pertanto ottimizzata con l’utilizzo combinato delle due mappe; in mancanza di una normal map, collegando i giunti Normal dei due nodi si otterrà un fastidioso disturbo superficiale, sintomo che qualcosa non sta funzionando correttamente. Sarà eventualmente possibile usare la Surface Overlay NORMAL map da sola impostando il valore di Surface Overlay Depth a 1 e controllandone la profondità attraverso lo slider Normal Strenght.

La Surface Overlay map, analogamente alla AO map, viene mixata alla Diffuse map mediante un nodo Multiply e pertanto, in mancanza di una diffuse map, collegando i giunti Color si otterrà il famoso effetto “purple”. Come per l’AO, sarà possibile usare una mappa Surface Overlay da sola semplicemente scollegando l’input Diffuse Map del texture manager e gestendo il colore diffuse da tale nodo.

Il Texture Manager node group è pensato per funzionare con una Gloss Overlay map bianca su fondo nero ed una Surface Overlay map nera su fondo bianco; in caso di necessità è possibile invertire le mappe attivando/disattivando (M) i nodi Invert posti nel frame Overlays.

“Scaling Controls” node group

Questo nodo serve molto semplicemente per gestire in modo comodo e veloce la scala ed il tipo di coordinate delle texture applicate alla mesh e consente di gestire separatamente i parametri per il materiale, per il Gloss Overlay e per il Surface Overlay.

Note finali

In ambito di materiali texture-based ritengo che la realizzazione di uno shader generico che possa restituire risultati perfetti con qualsiasi tipo di texture sia impossibile (almeno per quella che è la mia esperienza), proprio perché molto (se non tutto) dipende da come sono state realizzate le texture stesse (definizione, cromatismi, contrasti ecc..). Il mio è un tentativo di ottenere un buon compromesso tra l’infinità di correzioni, aggiustamenti ed impostazioni possibili, con l’obbiettivo di velocizzare il workflow risparmiando il tempo perso per quelle operazioni ripetitive ma necessarie.
Per questo motivo potrebbe capitare che lo shader non si adatti perfettamente alle vostre specifiche esigenze o che le texture utilizzate non restituiscano il risultato desiderato.

Per quanto riguarda il PBR, sono assolutamente un neofita e le mie conoscenze in merito al momento si limitano ai pochi tutorial già citati (più qualche reminiscenza di analisi e fisica….bei tempi andati!!). Quindi in caso di errori grossolani e macroscopici, abbiate pietà!!!

Per qualsiasi segnalazione, suggerimento o feedback in generale potete trovare tutti i miei recapiti in fondo a questa pagina o potete contattarmi direttamente nella sezione Contatti.
Buon lavoro a tutti.

Close
Go top
error: Content is protected !!