Stratificazione dinamica dei materiali
Stratificazione dinamica dei materiali è un flusso di lavoro specifico in cui i materiali generici vengono combinati all’interno di uno shader anziché in un’unica texture. Il vantaggio principale di questo flusso di lavoro è che la fusione è dinamica e consente di controllare e preservare un certo livello di qualità lavorando materiali generici all’interno dello shader. Sebbene i materiali siano generici, le maschere utilizzate per fondere i materiali sono specifiche della trama e pertanto non vengono ripetute.
Per attivare il flusso di lavoro per la creazione di livelli di materiale, è necessario uno shader specifico.
Lo shader " pbr-material-layering" fornito per impostazione predefinita con Substance 3D Painter consente di fondere 4 materiali con 3 maschere.
Pile livelli secondarie
In questo shader è possibile definire sottopile che possono essere campionate direttamente dallo shader. Esempio con lo shader “pbr-material-layering” fornito con Substance 3D Painter:
//: stacks [
//: {
//: "id": "Mask",
//: "channels": [
//: {"id": "opacity"}
//: ]
//: },
[...]
//: ]
Poiché i canali delle Pile livelli secondarie sono definiti nello shader, non è possibile aggiungere nuovi canali nelle impostazioni del set di texture. Per aggiungere o rimuovere un canale, è necessario aggiornare il file di shader.
Il numero massimo di canali supportati è definito dal numero totale di campionatori supportati dall’hardware.
Mentre Substance 3D Painter supporta texture senza binding (e quindi una quantità illimitata di texture) per i materiali caricati come parametri, i canali forniti dal motore per le Pile livelli sono limitati a 32 (in Windows). Questo limite include anche altre texture come Normale e l’Occlusione ambientale eseguita i baking sulla trama del progetto.
Input di materiali
Sebbene sia possibile impostare sottopile per definire i materiali in aggiunta alle maschere, spesso è più pratico definire semplicemente gli input di materiale nello shader e utilizzare i materiali direttamente dallo scaffale. La maggior parte delle volte questi materiali esistono anche nell’applicazione finale come Unity o Unreal Engine 4. La convenzione di denominazione dei materiali dichiarati nello shader “pbr-material-layering” è la seguente:
//: materials [
//: {
//: "id": "Material1",
//: "label": "Material 1",
//: "default": "",
//: "size": 1024,
//: "default_color": [0.5, 0.5, 0.5]
//: },
[...]
//: ]
La risoluzione del materiale può essere definita con il parametro “size”. È inoltre possibile caricare i materiali per impostazione predefinita quando lo shader viene creato con il parametro “default” (utilizzando il nome/l’etichetta della risorsa che deve essere caricata).
Per accedere ai materiali e alla maschera dello shader stesso, collegateli semplicemente con la parola chiave “param auto”:
//: param auto Material1.channel_basecolor
uniform sampler2D color1;
//: param auto Mask.channel_opacity
uniform sampler2D mask;
In questo flusso di lavoro specifico, la parte più importante sono i parametri maschera e shader. Pertanto, nella finestra di esportazione di Substance 3D Painter si consiglia di abilitare l’impostazione " Esporta parametri shader ". Verrà creato un file JSON sul disco accanto alle texture che conterrà informazioni sulla configurazione dei sottostack, sui materiali utilizzati e sugli shader e i relativi parametri. Esportazione e importazione di parametri
Al momento, l’impacchettamento di maschere in una singola texture non è supportato durante l’esportazione. Tuttavia, una soluzione alternativa potrebbe consistere nell’utilizzare le funzioni di scripting e chiamare gli strumenti batch di Substance per eseguire l’impacchettamento con una Substance.
Questo File JSON può quindi essere utilizzato per impostare le Pile livelli e gli shader di un progetto.
In questo modo è possibile condividere facilmente i parametri comuni tra più applicazioni.