Ereditarietà nei grafici Substance
Questa pagina descrive come l’ereditarietà viene applicata nei grafici Substance in Substance 3D Designer e l’impatto che ha sull’output del grafico.
Panoramica
Tutti i nodi in un grafico a Substance possono ereditare il valore di alcuni parametri da un’origine. L’ereditarietà indica che la modifica del valore nell’origine eseguirà la modifica in tutti i nodi che ereditano da essa. Questo è uno dei concetti fondamentali alla base della potenza di Substance 3D Designer nella generazione di risorse parametriche.
Metodi di ereditarietà
I metodi di ereditarietà vengono applicati per i parametri di base di un nodo, ovvero l’insieme di parametri comuni di tutti i nodi che controllano aspetti fondamentali del loro comportamento. Tali parametri includono:
- Dimensioni output
- Formato di output (ovvero, profondità di bit)
- Dimensione pixel
- Proporzioni pixel
- Modalità Porzione
- Numero casuale
Ciò dovrebbe consentirti di comprendere come le modifiche in un nodo possano influire sulla risoluzione, la precisione e il comportamento di suddivisione in porzioni di tutti i nodi a valle da esso.
Ad esempio, due nodi Perlin noise in uno stesso grafico sono entrambi rappresentazioni di un same grafico di origine (
perlin_noise in noise_perlin_noise.sbs) con i relativi insiemi propri di valori di parametro.
Numero casuale: Utilizzare il pulsante
Apportare modifiche
Modifica dei metodi di ereditarietà
Nel pannello Proprietà, tutti i parametri elencati nella sezione Parametri di base delle proprietà di un nodo dispongono di un pulsante a discesa (icona) Imposta metodo di ereditarietà di fronte all’etichetta.
Questo pulsante consente di selezionare il metodo di ereditarietà da utilizzare per un parametro.
Nella maggior parte dei casi, i parametri di base di un nodo sono impostati su Rispetto all’input, per sfruttare il comportamento procedurale del concatenamento dei nodi, mentre i parametri di base di un grafico sono impostati su Rispetto all’elemento padre, in modo che i parametri globali possano adattarsi al contesto in cui viene utilizzato il grafico.
MODIFICA DEI VALORI EREDITATI
Alcuni parametri di base, ad esempio Dimensioni output, Dimensioni pixel o Numero casuale, possono essere modificati relativamente al valore ereditato.
Ad esempio, quando il parametro Dimensione output utilizza un metodo di ereditarietà Relativo a…, un valore o (1, -1) indica una potenza di due risoluzioni superiore il valore ereditato per X e una potenza di due risoluzioni inferiore il valore ereditato per Y, ad esempio:
- Valore ereditato:
(9, 9)che è2^9, 2^9 = 512, 512 - Valore relativo:
(1, -1)che è2^(9+1), 2^(9-1) = 256, 1024
Se una funzione viene applicata a un parametro Base, anche il risultato della funzione verrà interpretato utilizzando il metodo di ereditarietà del parametro.
Tenendo presente l’esempio della dimensione di output, una funzione che mira ad aumentare di due volte la risoluzione ereditata in X e Y dovrebbe generare il valore (2, 2) Integer2.
Proprietà di parentela per nodi e grafici
Quando si utilizza il metodo di ereditarietà Relativo all’elemento padre, è necessario comprendere esattamente cosa si trova esattamente in un contesto specifico.
L’elemento padre di un nodo è il grafico in cui esiste.
L’elemento padre di un grafico è il contesto in cui esiste:
- Se il grafico è un sottografo istanziato in un altro grafico host come nodo di istanza, il padre del sottografo è il nodo di istanza. L’elemento padre di tale nodo di istanza è il grafico host.
- Se il grafico è un grafico radice, l’elemento padre è l’applicazione stessa e qualsiasi valore impostato dall’applicazione per un determinato parametro. Ad esempio, i grafici erediteranno dal parametro Dimensione principale impostato nella barra degli strumenti della visualizzazione Grafico.
Anche se ciò è auspicabile per nodi Bitmap o scopi di ottimizzazione, ad esempio, si consiglia vivamente di utilizzare i metodi di ereditarietà Relativi a… quando si utilizzano grafici Substance, a meno che non vi sia uno scopo chiaro nel fare diversamente.
MODIFICA IN CONTESTO
Quando si utilizza Modifica in contesto su un nodo di istanza del grafico, il padre del grafico è il nodo di istanza. In tal caso, l’impostazione Dimensione principale nella barra degli strumenti della visualizzazione Grafico è disabilitata, poiché il grafico eredita i parametri di base dal nodo dell’istanza.
Questa caratteristica è il punto della modifica in contesto e dovrebbe essere valutata in base al fattore durante l’impostazione del metodo di ereditarietà e la valutazione dei valori correnti dei parametri Base di qualsiasi nodo.
Ereditarietà con input multipli
Quando un grafico ha più input, ogni input può ereditare dai suoi dati di input discreti o dal grafico, a seconda del suo metodo di ereditarietà:
Ingresso principale
Quando l’istanza del grafico viene inserita in un altro grafico come nodo dell’istanza, tutti i parametri Base del nodo dell’istanza impostati su Rispetto all’input erediteranno i dati connessi a tale input. L’input principale di un nodo di istanza può essere identificato dal piccolo punto scuro nel suo connettore.
Gli altri input impostati su Rispetto all’elemento padre erediteranno gli stessi valori dei parametri di base, in quanto ereditano dal grafico che eredita dal nodo di istanza*, che eredita dall’input principale.
*: questo è vero se il grafico utilizza il metodo di ereditarietà* Relativo al padre*.
Esempi
Di seguito sono riportati alcuni esempi relativi a diversi casi di ereditarietà e all’interazione dei metodi di ereditarietà impostati nei seguenti attori, dall’alto verso il basso:
- Applicazione
- Grafico host
- Nodo dell’istanza nel grafico host
- Sottografo: il grafico a cui fa riferimento il nodo dell’istanza
- Nodi nel sottografo
Il metodo di ereditarietà impostato per un attore viene visualizzato in arancione appena sopra di esso. Il flusso di ereditarietà alla relativa origine viene visualizzato con linee arancioni.
Le lettere rappresentano set separati di parametri di base e dovrebbero aiutare a seguire i dati ereditati da ciascun attore.
Risoluzione dei problemi di ereditarietà
Man mano che create il grafico e ne aumentate la complessità, potreste riscontrare risultati imprevisti dovuti all’ereditarietà. Se l’output di un nodo ha una risoluzione o una precisione errata (ad esempio, la profondità di bit), è necessario passare alla catena di ereditarietà per individuare la provenienza di tali valori.
Un buon punto di partenza è il controllo dei dati visualizzati appena sotto un nodo: si tratta della risoluzione, del formato del colore e della precisione dell’output dell’immagine da parte del primo output del nodo. Anche se la comprensione della risoluzione è semplice, vale la pena di approfondire la seconda parte dei dati:
-
Il prefisso di lettere fa riferimento al formato colore dell’immagine:
- L: Luminanza (ovvero, scala di grigi)
- C: colore
-
Il numero fa riferimento alla profondità di bit dell’immagine, dalla precisione più bassa a quella più alta:
- 8: numero intero a 8 bit (256 passaggi in 0-1)
- 16: numero intero a 16 bit (65.536 passaggi in 0-1)
- 16F: virgola mobile a 16 bit (valori di bassa precisione superiori a 0-1, inclusi negativi)
- 32F: virgola mobile a 32 bit (valori di alta precisione superiori a 0-1, inclusi negativi)
Se il nodo dispone di più output, è possibile verificarne la risoluzione e la precisione in due semplici modi:
- Fate doppio clic su LMB nel connettore di output per visualizzare l’immagine nella vista 2D e verificate le informazioni sull’immagine visualizzate nell’angolo inferiore sinistro della vista 2D
- Creare un nodo Livelli o Trasformazione 2D e collegarne l’input all’output che si desidera controllare. Per impostazione predefinita, il nodo eredita dall’output ed è quindi possibile controllare i valori al di sotto del nodo.
È ora possibile spostarsi in alto nella catena di nodi nel grafico e cercare di trovare il primo nodo in cui vengono visualizzati i valori imprevisti. Controllare il metodo di ereditarietà dei relativi parametri Base.
Se non vi sono errori e il nodo è un nodo di istanza, è necessario andare più in profondità e aprire il grafico a cui fa riferimento tale nodo di istanza. Ripetete il processo partendo dai nodi di output del grafico e andando a monte.
UN ESEMPIO COMUNE
In particolare, il concetto di input primario è facilmente ignorato e può causare problemi di ereditarietà.
Il nodo Fusione è molto sensibile a questo, in quanto viene utilizzato molto frequentemente. L’input Background è l’input principale.
È necessario prestare attenzione all’ordine in cui si fondono i due input: l’input che la risoluzione e la precisione che si desidera mantenere in basso il grafico dovrebbe essere collegato all’input Sfondo, se il metodo di fusione necessario lo rende possibile. In caso contrario, potrebbe essere necessario modificare i parametri di base del nodo di blend e il relativo metodo di ereditarietà per compensare.