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.

Metodi di ereditarietà {width="1400px"}

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.

NOTE
Nella sezione Grafici di Substance di esempio di questa documentazione è disponibile un file di progetto annotato che dimostra l'ereditarietà.

Metodi di ereditarietà

Icona per il metodo di ereditarietà 'Absolute' {width="128px"}

Assoluto

Nessuna ereditarietà. Il valore è definito arbitrariamente e localmente per il parametro

Icona per il metodo di ereditarietà 'Relativo all'input' {width="128px"}

Rispetto all’input

Il valore viene ereditato dai dati connessi all’input primario del nodo

Icona per il metodo di ereditarietà 'Relativo al padre' {width="128px"}

Rispetto all’elemento padre

Il valore viene ereditato dall’elemento padre del nodo o del grafico

Dimostrazione dei 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.

WARNING
Un promemoria importante per comprendere i concetti discussi in questa pagina: un nodo istanza è un nodo che rappresenta un grafico in un altro grafico, con i suoi valori di parametro discreti, da cui il termine istanza.
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.
NOTE
Dimensioni output: Utilizzare il pulsante di blocco per fare in modo che il valore Height corrisponda al valore della larghezza
Numero casuale: Utilizzare il pulsante per assegnare un nuovo valore casuale al numero casuale.

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.

Modifica del metodo di ereditarietà {width="512px"}

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
NOTE
La pagina Dimensioni output approfondisce questo parametro Base critico e si consiglia di leggere per comprendere come viene calcolata la risoluzione finale di un nodo.

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.
WARNING
La parentela è applicata così com'è quando si pubblica un pacchetto in file di risorse Substance 3D (SBSAR). Ciò significa che l'impostazione di qualsiasi parametro sul metodo di ereditarietà Assoluto determinerà il blocco di tale parametro sul valore corrente nella risorsa pubblicata.
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à:

Icona per il metodo di ereditarietà 'Relativo all'input' {width="128px"}

Rispetto all’input

L’input eredita dai suoi dati di input discreti, indipendentemente dai parametri di base del grafico. Questo è molto utile per controllare i dati per input.

Icona per il metodo di ereditarietà 'Relativo al padre' {width="128px"}

Rispetto all’elemento padre

L’input eredita dal grafico e i dati che riceve vengono adattati di conseguenza.

Ingresso principale

table 0-row-3 0-border-0 1-border-0 2-border-0 3-border-0 html-authored no-header
Colore di input principale/scala di grigi {width="48px"} Colore di input primario {width="48px"} Scala di grigi di input primaria {width="48px"}

È possibile impostare uno degli input come input principale del grafico facendo clic su RMB nel nodo Input e selezionando l’opzione Imposta come input principale nel menu di scelta rapida.

Tipi di connettori di input

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:

  1. Applicazione
  2. Grafico host
  3. Nodo dell’istanza nel grafico host
  4. Sottografo: il grafico a cui fa riferimento il nodo dell’istanza
  5. 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.

Esempio A

Diagramma di ereditarietà A {modal="regular"}

Esempio B

Diagramma di ereditarietà B {modal="regular"}

Esempio C

Diagramma di ereditarietà C {modal="regular"}

Esempio D

Diagramma di ereditarietà D {modal="regular"}

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.

Ereditarietà delle dimensioni di output {width="512px"}

È 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.

recommendation-more-help
substance-3d-designer-help-guide