In questo tutorial vedremo un modo per modificare velocemente la tonalità della Texture di un oggetto per crearne varie copie con colori diversi.
Trascrizione del video
Salve a tutti! In questo tutorial vedremo un modo per modificare velocemente la tonalità della Texture di un oggetto per crearne varie copie con colori diversi.
Effettueremo questa operazione senza dover modificare l'immagine Texture originale e senza dover creare altri materiali, ma partendo da un solo Materiale e dal campo Object Index delle varie copie.
Questo tutorial è stato realizzato con la versione 3.6 di Blender.
Bene, possiamo iniziare! A video potete vedere una scena di Blender all'interno della quale ho importato il mio modello 3D così come appare dopo averlo scaricato.

Sono presenti due oggetti che condividono lo stesso Material e lo stesso set di Textures PBR.
La Texture del Base Color, in particolare, colora di giallo il corpo centrale e la punta dell'evidenziatore, mediante mappatura UV.
Se duplico questi oggetti per ottenere altri evidenziatori, ottengo ovviamente altri evidenziatori gialli.

Per modificare i colori delle copie esistono, come per qualsiasi problema, diverse soluzioni, alcune più adatte di altre in base alle circostanze. In questo particolare caso, il colore da cambiare è uniforme e, soprattutto, il resto dell'oggetto è nero, per cui possiamo utilizzare nodo Hue Saturation Value per modificare la tonalità della Texture Base Color. Vediamo come fare.
In uno Shader Editor, aggiungo un nodo Color HSV in mezzo alla Texture del Base Color e al relativo ingresso nel nodo PBR. Questo nodo è un semplice nodo PBR che ho utilizzato in molti miei modelli 3D e che può essere tranquillamente sostituito dal nodo Principled BSDF, non lasciatevi influenzare dalla sua presenza qui.

Modificando il valore del campo Hue con un valore compreso tra 0.0 e 1.0 possiamo modificare la tonalità della Texture, in particolare nelle zone colorate, lasciando quindi inalterate le parti nere.

In questo modo, però, modificheremo il colore di tutti gli oggetti realizzati mediante duplicazione dall'originale, in quanto queste copie condivideranno lo stesso materiale.
Ad ogni copia possiamo però assegnare un valore numerico, chiamato Object Index o Pass Index. Procediamo in questo modo: selezioniamo il corpo di un evidenziatore, apriamo la scheda Object nell'editor Properties, quindi modifichiamo il valore del campo Pass Index all'interno della sezione Relations.

Effettuiamo questa operazione anche per le altre copie. Ovviamente, gli oggetti che condivideranno lo stesso indice numerico avranno anche lo stesso colore. Non c'è bisogno di modificare il Pass Index dei tappi degli evidenziatori, in quanto quegli oggetti sono completamente neri.
Il valore del Pass Index di un oggetto può essere recuperato, nell'editor Shader, mediante l'output Object Index di un nodo di tipo Input Object Info.

Il valore in uscita dal campo Object Info sarà però un numero intero maggiore o uguale a 0, mentre a noi serve un valore compreso tra 0 e 1 come ingresso del campo Hue del nodo HSV.
Beh, nessun problema! Blender ci fornisce un paio di nodi che ci consentono di ridurre i valori da noi impostati al range da 0 a 1.
Possiamo utilizzare, ad esempio, un nodo di tipo Converter Math in modalità Divide, dividendo il valore in arrivo da Object Index per il valore massimo da noi impostato per Pass Index.

In alternativa possiamo utilizzare un nodo Converter Map Range e impostare il valore massimo di Pass Index nel campo From Max. L'effetto sarà lo stesso di Math Divide.

Ovviamente, possiamo anche utilizzare valori diversi per i quali effettuare la divisione o la mappatura, ottenendo chiaramente colori diversi.
In questo senso, il nodo Map Range offre un vantaggio, in quanto ci consente di limitare la mappatura ad un range di valori più ristretto. Guardate ad esempio cosa succede se imposto i campi To Min e To Max rispettivamente a 0.0 e 0.5, oppure se li imposto rispettivamente a 0.5 e 1.0.

Ricapitolando: abbiamo modificato la tonalità di una sola Texture immagine applicata a vari oggetti utilizzando un valore numerico, chiamato Pass Index, da noi associato liberamente alle copie dell'oggetto origiale, ottenendo così oggetti dall'aspetto differente ma a partire da un solo Material e da un solo set di Textures.
Spero che questo tutorial vi sia stato utile! A presto!