Con texture baking si intende il trasportare, per un determinato oggetto, tutti i calcoli che vengono effettuati in fase di render (luci, ombre, trasparenze, riflessi, ecc…) su di un’unica texture.

Partiamo dunque con una scena di interni. Abbiamo una poltrona, un tavolino con alcuni oggetti, pavimento, tappeto e muri.

2d57cd5ce8ae37e139f388cf863c4cc6.jpg

Render realizzato dall'Arch. Pierantonio Pozzan

Per prima cosa dobbiamo decidere se fare il texture baking per i singoli elementi: nel caso della poltrona, per esempio, farlo di ogni cuscino, delle gambe, della struttura, ecc… oppure di tutti i vari elementi assieme. Troviamo che sia più pratico e rapido unire tutti gli oggetti che compongono, per esempio, la poltrona in modo che, avendo un unico oggetto, si ha alla fine un’unica texture.

Per unire più oggetti questi vanno prima selezionati col MOUSE-SX, tenendo premuto SHIFT. Una volta completata la selezione con CTRL-J li unisco in un unico oggetto.

Ora possiamo partire con il procedimento vero e proprio di texture baking.

1. Primo punto: aggiungere una nuova mappa UV

Spesso gli oggetti hanno già delle texture e delle mappe UV che le regolano, bisogna dunque creare una nuova mappa UV per la texture che calcolerà Blender.

Sempre con l’oggetto selezionato, andiamo sul pannello “Object Data Properties” alla voce UV Map, clicchiamo su “+” per creare una nuova UV Map e col doppio click sul nome ne mettiamo uno più esplicito, tipo UVBaked.

e6c9a58b289cbe29fc2ae32c1db640a5.jpg

Attenzione: assicuratevi che la mappa “UV Map” abbia l’icona con la macchina fotografica attiva, significa che è la mappatura attiva in fase di rendering, mentre che sia evidenziata la riga con “UVBaked” significa che verrà editata questa mappatura.

2. Secondo punto: nuova texture

Ora creiamo una nuova texture vuota, dove poi Blender riporterà i calcoli. Per effettuare tale operazione è sufficiente andare nel workspace “UV Editing”


e85a5d1f1530907778e318dba1544ee5.jpg

Render realizzato dall'Arch. Pierantonio Pozzan

Cliccando su “+ New” si apre il pannello con le opzioni. Le dimensioni della texture dipendono un po’ dalle dimensioni dell’oggetto: se è piccolo e con pochi dettagli 1024x1024 px vanno bene, ma se l’oggetto è grande (muri) o vogliamo che si vedano bene i dettagli si deve aumentare la risoluzione.

Consigliamo di utilizzare un nome che ricordi a cosa corrisponda tale texture, per esempio: poltrona. La scelta del colore di base è abbastanza ininfluente.

Attenzione: può capitare di dover fare delle prove e non è necessario che la texture sia quadrata, ovviamente, se l’oggetto ha uno sviluppo in una direzione possiamo creare una texture rettangolare.

93dbfb7a5871f9c9d450e4510a3099f2.jpg

Render realizzato dall'Arch. Pierantonio Pozzan

Fatte queste operazioni, sempre con l’oggetto selezionato, entriamo in Edit Mode (tasto TAB) e passiamo all’unwrap.

Bisogna fare in modo che tutte le parti della mesh siano all’interno della texture e siano deformate il meno possibile (deformazione uguale artefatti). Premendo “U” abbiamo il menù per l’unwrapping.

In tale operazione va tenuto presente che sarà Blender ad occuparsi di creare la texture, quindi una qualsiasi mappatura potrebbe andare bene, ma per avere dei risultati migliori bisogna cercare di tenere presenti alcuni suggerimenti: minimizzare le deformazioni e dare il giusto peso alle dimensioni delle facce.

Il metodo migliore come compromesso tra velocità e qualità è lo “Smart UV Project”, c’è anche il “Lightmap Pack”, ma se ci sono troppe facce si rischia di non avere risultati ottimali per texture piccole. Altrimenti si può sempre fare la mappatura a mano.


4cc5dd4e6b1c8634aee045c4e5622f08.jpg

Render realizzato dall'Arch. Pierantonio Pozzan

3. Terzo punto: i materiali

Ora bisogna indicare a Blender che la texture che abbiamo appena creato dev’essere usata per il baking e indicare quale UV Map serve per la texture, nel nostro caso l’abbiamo rinominato “UVBaked”.

Attenzione: come abbiamo detto l’oggetto ha più UVMap quindi dovremo esplicitare anche per le altre texture quale stiamo utilizzando, in questo modo eviteremo errori.

Procediamo. Andiamo nel workspace “Shading”. Questo è il node tree di partenza:

bab1f8ae55232e2149640bf45cf2240a.jpg

Render realizzato dall'Arch. Pierantonio Pozzan

Ora con SHIFT-A aggiungiamo un nodo “UV Map” dove indichiamo come nome “UVBaked” e poi aggiungiamo un nodo texture > Image Texture e carichiamo la texture che abbiamo appena creato.

Attenzione: bisogna definire per ogni texture il corretto UV Map.

02d19f8c819b65782d25c4ce68d530df.jpg


Questa è la situazione finale:

3526105eba66aa1e7cdabca3044d1323.jpg

Ultima accortezza, lasciare selezionato il nodo con la texture da "cucinare".

Queste operazioni vanno fatte per ogni materiale dell’oggetto.

A questo punto siamo pronti per il baking della texture. Per fare questo dobbiamo andare nel pannello “Render Properties”. Prima cosa impostare il motore di render su “Cycles” (Eevee non supporta ancora il baking) e poi scorrere fino alla voce “Bake”.

3682bb4d182b170749c0120032302eff.jpg


Dato che noi vogliamo fare il baking del render completo lasciamo le impostazioni “Bake Type”, “Influence” e “Contributions” così come sono. Tutto attivo significa render completo.

L’opzione “Margin” in “Output” indica di quanti pixel sarà il margine che Blender calcolerà e quindi cololerà attorno ai margini della mappa UV, un margine diverso da zero garantisce che non ci saranno parti della mesh senza texture.

Per lanciare il baking è sufficiente premere il pulsante “Bake”. Una volta finiti i calcoli vedrete la texture completa.

2b9cbcabb266232f6949e3ea64f1c72d.jpg

Possiamo adesso utilizzare la texture calcolata come materiale.

Eliminiamo tutti i materiali dell’oggetto.

Nel pannello “Material Properties” premiamo “-“ fino ad eliminare tutti i materiali presenti e quindi premiamo “+ New” per aggiungerne uno nuovo, dandogli un nome come “poltrona.mat”.

169e5acf4ebf68f04ad23c705a2f9b37.jpg

Ritornando nello “Shader Editor” troveremo il node tree di default, quindi un nodo “Principled BSDF” collegato ad un nodo “Material Output”. Bene, selezioniamo il nodo “Principled BSDF” e premendo “X” lo cancelliamo. Quindi SHIFT-A ed aggiungiamo un nodo “Emission”.

Colleghiamo questo nodo con l’output ed aggiungiamo un nodo “UVMap” e “Image Textures”.

Come UVMap selezioniamo “UVBaked” (liberi ovviamente di rinominarlo) e nel nodo texture carichiamo la texture calcolata. Così:

ea5201dfc6bd720e7fe865db90d5bae7.jpg

Ripetere questi passaggi per tutti gli oggetti della scena.

Per apprendere più nel dettaglio questa e le tantissime altre funzionalità messe a disposizione dal potente modellatore 3D, Blender, fino ad arrivare alla realizzazione e renderizzazione di una scena completa e dettagliata, GoPillar Academy mette a disposizione un video-corso completo di oltre 27 ore di lezioni dettagliate da poter seguire in qualsiasi momento al prezzo speciale per la community di Treddi di 99€ anziché 349€.

---

note - l'articolo fa parte di una collaborazione editoriale tra Treddi.com e GoPillar Academy