Qual è la differenza tra le coordinate di texture "Generate" e "Normali"?
Non riesco a capire dalla documentazione la differenza nel nodo Texture Coordinate (in Shader) tra Generated e Normal , e nemmeno lo scopo del nodo Texture Coordinate stesso, che ho come primo nodo.
Risposte
Può essere utile visualizzarlo in questo modo:
Quando rendiamo una scena, per ogni pixel della fotocamera proiettiamo un raggio e se entriamo in contatto con la superficie di un oggetto chiediamo "Qual è il colore che dovrebbe essere riportato per questo pixel date le proprietà del materiale, l'illuminazione, l'occlusione eccetera?"
Questo è abbastanza semplice quando il materiale è un colore solido, ma per quanto riguarda i materiali che variano?
Un materiale procedurale può essere pensato come un "campo" in senso fisico, esiste e ha un valore in ogni posizione della scena. Quando si mappa questa texture su un oggetto e lo si guarda nella finestra, viene visualizzata la sezione trasversale di questo campo che coincide con la superficie del proprio oggetto.
Il nodo Coordinate texture definisce semplicemente lo spazio delle coordinate X, Y, Z utilizzato per mappare la texture. Le coordinate dell'oggetto, ad esempio, utilizzano l'impostazione della scala di Blender e impostano l'origine dell'oggetto come 0,0,0. Le coordinate generate utilizzano il riquadro di delimitazione dell'oggetto come spazio delle coordinate in un intervallo da 0,0,0 a 1,1,1.
Le coordinate normali sono un po 'strane. La mia comprensione attuale è che si basano meno sulla posizione e più sulla rotazione di ogni singola faccia (più specificamente la direzione normale). Forse qualcuno spiegherà come questo può essere utile per te, la mia conoscenza è limitata su questo.
Solo per espandere un po ' la bella risposta di Allen Simpson :
Le coordinate generate restituiscono la posizione del punto di ombreggiatura attualmente valutato, ad esempio P , calcolato nello spazio della trama 'Generato', che, qualunque sia la dimensione dell'oggetto ombreggiato, misura 0-1 lungo i lati del suo riquadro di delimitazione, con il suo origine al minimo. Il riquadro di delimitazione è parallelo agli assi locali dell'oggetto (che può essere inclinato rispetto alla trama, se hai ruotato la trama in modalità Modifica).
(Questo è un valore predefinito; lo spazio "Generato" in realtà può essere ridimensionato e spostato nel pannello Spazio Texture della scheda Dati dell'oggetto .. ma penso che sia un po 'un'eredità?)
Due degli output del nodo Texture Coordinate , Normal e Reflection , non restituiscono la posizione di P ; tornano le indicazioni da P : posizioni sulla sfera unitaria centrata su P .
Normal nel nodo Texture Coordinate riporta il vettore da P , nella direzione della normale interpolata (dopo la levigatura) della superficie, alla punta della freccia gialla, lunga 1 unità Blender. Viene misurato nello spazio degli oggetti: i suoi componenti X, Y e Z sono paralleli agli X, Y e Z dell'oggetto.
Normale nel nodo Geometria restituisce la stessa cosa, ma in World Space. I riflesse ritorna uscita direzione del raggio in arrivo attualmente valutato, poi, dopo la riflessione dalla superficie a P . Viene anche misurato lungo gli assi allineati con il mondo.