Color match in Blender

Ovvero come far combaciare i colori originali delle texture con i render finali.

In genere realizzare illustrazioni 3d e render significa enfatizzare o presentare al meglio un ambiente, un prodotto o un’idea, tuttavia mi sono trovato spesso a dover realizzare dei render con colori il più possibili fedeli alla realtà e non è sempre stato semplice, qua vi illustro il metodo che ho affinato nel tempo.

Per capire il perché di alcuni passaggi faccio una premessa non esaustiva, piuttosto incompleta ma necessaria.
Prendiamo in esame le immagini da monitor, i colori sono il frutto dei 3 colori primari Rosso, Verde, Blu (RGB) in modalità additiva, valore massimo di tutti e tre è bianco, valore “zero” è nero. I valori hanno un range da 0 a 255. Alcuni file immagine (Es. TIFF, JPG, PSD) possono contenere al proprio interno una specifica chiamata “Profilo colore” che indica al software che lo visualizzerà o lo modificherà come interpretare i valori numerici RGB.

Quindi lo stesso rosso di valore numerico RGB: 176, 55, 60 interpretato con 2 spazi colore differenti risulteranno diversi. Questo concetto vale per tutti gli strumenti che manipoleranno e visualizzeranno le immagini, dalla fotocamera, passando per Blender, fino all’immagine post prodotta.

Fatta questa incompleta premessa, iniziamo con i passaggi che ad oggi mi danno i migliori risultati:

1. Fotografiamo la nostra texture che deve essere riprodotta fedelmente all’interno dei render in formato RAW se possibile. Naturalmente la foto deve essere scattata in modo più omogeneo e neutro possibile.

2. Conversione in formato JPEG (o TIFF se vogliamo avere dei livelli di regolazione sempre modificabili), con profilo colore AdobeRGB, io utilizzo Camera RAW. Questo profilo ha una estensione cromatica più ampia rispetto al sRGB e per questo iter è più adatto. In questa la fase dobbiamo regolare immagine nel modo più fedele possibile all’originale (un monitor calibrato per questo genere di cose è assolutamente consigliato)

3. L’importazione e l’uso all’interno di Blender deve essere fatta impostando il file come “sRGB” (anche se il profilo del file è AdobeRGB).

4. Naturalmente lo shader che utilizzeremo per i nostri oggetti influirà su come quest’ultimi saranno visualizzati e renderizzati. Lo shader Diffuse BSDF è probabilmente il più adatto per restituire l’effetto cromatico più fedele perché risente solo dell’illuminazione e non dei riflessi o di altri parametri.

Nella realtà quando fotografiamo un oggetto questo è influenzato appunto da luci, ombre, colore dell’ambiente e degli oggetti vicini, riflessi e quant’altro quindi non avremo mai il colore “puro” di una superficie.

5. Impostiamo la nostra scena all’interno di Blender con questi parametri:

Render Properties:
Color Management
Display Device: sRGB
View Trasformation: Standard
Look: None
Exposure: 1
Gamma: 1

L’altra impostazione importante di partenza è l’illuminazione globale:
Colore world Bianco puro (0,5)
Stregth: 1,0
OPPURE
Colore world Bianco puro (1)
Stregth: 0,5

Spegnendo tutte le altre luci e con le impostazioni sopra indicate avremo una luminosità il più flat possibile, ovvero ovunque arriva la luce omogenea e il risultato del render è prossimo a quello della texture.
Nella maggior parte delle occasioni questo è il punto di partenza e ovviamente l’aggiunta di altre luci, HDRI, ombre, ecc, varierà il risultato finale tuttavia in un contesto non neutro è verosimile che il render di un eventuale prodotto con una texture sia fedele all’originale ma contestualizzato nell’ambiente.

6. Una volta terminato il nostro render, salveremo la nostra immagine (o sequenza) come PNG, TIF, JPEG o altro ma dobbiamo tenere a mente che questi file immagine non possiedono ancora al loro interno il profilo colore. Per utilizzare e processare correttamente il file andrà assegnato un profilo colore manualmente all’interno di Photoshop oppure dovrà essere indicato nel programma di elaborazione di interpretarlo utilizzando il profilo AdobeRGB.
Attenzione i file PNG non conservano il profilo colore.

Una volta salvato il file con il profilo colore, tutte le applicazioni (Illustrator, Photoshop, Indesign, ecc) sapranno che quell’immagine dovrà essere interpretata in quello specifico modo, questo garantirà una coerenza colore con la texture di partenza.

7. Altro aspetto importante di questo metodo.

Nodo per i campioni colore scritti come valori i RGB dentro Blender.

All’interno di Blender i valori RGB impostati manualmente per essere visti in modo coerente in BLENDER vanno passati attraverso una curva gamma di 2.2. Questo permetterà di usare i valori RGB che si leggono all’interno di Photoshop nella texture originale.

Da qua potete scaricare il file Blender e la texture

PS: il file è stato creato con Blender 3.4.0 e mi hanno fatto notare che nella 3.2 il nodo “Combine Color” non funziona, va sostituito con “Combine RGB” che dovrebbe dare gli stessi risultati.

NOTA BENE: Questo metodo non è perfetto al 100% e soprattutto nei colori scuri c’è qualche divergenza tuttavia le regolazioni in post processor si riducono notevolmente.
Esistono metodi più complessi (es. questo: https://youtu.be/3nZZuCwkwTk ) che necessitano di gestire in modo manuale i profilo colore, creati su misura e inseriti in Blender cambiando la configurazione tuttavia trovo il metodo descritto qua sopra veloce e pratico.

In molti casi si sceglie di esportare i render a 32 bit in formato EXR, farò un’aggiunta a questo tutorial per come gestire anche questo output.

Se qualcosa non fosse chiara o avessi scritto delle inesattezze, segnalatemelo cercherò di correggere.