Cycles Baking per SecondLife (1 di 2)

“Cycles” è un motore di rendering incluso in Blender ormai da tempo ed alternativo al sistema nativo chiamato  “Blender Internal”. Rispetto a quest’ultimo Cycles offre qualità e versatilità nel rendering molto migliori, anche se di solito al costo di maggiori tempi di calcolo.

Cycles è anche uno dei sistemi di rendering che possono sfruttare direttamente la potenza di calcolo delle moderne schede grafiche, in particolare le schede Nvidia dotate del set di istruzioni Cuda (chi utilizza schede Ati deve invece per forza utilizzare direttamente le risorse della CPU).

Per gli utenti di SecondLife, Cycles non ha rappresentato una risorsa importante in quanto i rendering generati da esso non potevano essere agevolmente utilizzati per la realizzazione di texture da applicare alle uvmap dei propri modelli, ragione per cui non è mai stato trattato approfonditamente. Con la versione 2.71 le cose sono drasticamente cambiate, in quanto da questa versione è stato reso possibile il baking anche dei rendering effettuati con cycles, il che implica che, con un pò di pazienza, è possibile trasporre e applicare sulle mesh desitante a SecondLife anche le dolci sfumature di questo motore di rendering.

In pratica, la maggior novità (relativa al baking) si riduce a questo, ovvero alla possibilità di eseguirlo anche con Cycles, e nella fattispecie con tutti gli elementi Cycles attivi (opzione  ‘combined’):
cyclesbake01


Per chi però non ha dimestichezza con Cycles e il Node Editor ecco di seguito una semplice esercitazione esemplificativa dalla A alla Z per impararne le basi.

Qui sotto potete vedere un’anteprima di quello che andremo a realizzare:

triplaimg1


1) Creiamo la scena
Dobbiamo realizzare e disporre gli elementi della nostra scena, nel nostro esempio essa sarà composta da:
– una sorgente di luce puntiforme (quella che è presente di default va benissimo).
– un primo cubo, semplice ed essenziale.
– un secondo cubo, che sfrutteremo anche come sorgente di luce secondaria.
– un piano, dotato di una texture, il cui bake quindi dovrà essere il prodotto del mix tra la texture iniziale e il prodotto del rendering di luci ed ombre presenti.

Un consiglio che mi è stato dato sino alla nausea, ma di cui non smetterò di esser grato, consiste nel dare subito un nome significativo a tutto ciò che creiamo, siano mesh, luci, materiali, uvmap..tutto.
In lavori già di bass media complessità è molto rapido perdersi o confondersi, ma se si acquisisce quest’abitudine poi sarà più facile evitare errori, distrazioni o anche solo riprendere in mano una scena dopo che è trascorso del tempo dall’ultima modifica (e in cui ci siamo dimenticati la maggior parte delle scelte).

Nel nostro chiameremo le tre mesh cube1simple, cube2light, plane3textured, in questo modo il nome stesso ci ricorderà che cosa ci aspettiamo dalle singole mesh.

cyclesbake02


2) Creaiamo le UVmap degli elementi.
Dopo aver creato le mesh, dato che qualsiasi bake necessita di una UVmap e di un’immagine su cui venir applicato, il passo successivo che dovremo fare sarà quello di creare le 3 uvmap (una per ogni mesh), magari utilizzando sempre la ‘good pratices’, la ‘buona abitudine’ di dar loro nomi signficativi (nel nostro caso uvmapcube1, uvmapcube2, uvmapplane3) .

Altro passaggio utile consisterebbe nel creare da subito gli slot immagine che ci serviranno e salvare già le immagini in locale (anche se di fatto non sono ancora state ‘riempite’ correttamente).
Questo per darci modo di salvare anche eventuali passaggi e prove intermedie senza preoccuparmi della clipboard di Blender. Ovviamente battezzeremo anche questi slot in modo da essere facilmente identificabili (nel nostro caso (bakecube1, bakecube2, bakeplane3).

Possiamo inoltre aggiungere già a questo stadio negli slot imagine le eventuali texture esterne che vogliamo utilizzare, nel nostro caso quella che verrà utilizzata per il piano (qui useremo un’immagine chaimata ” chesstexture_30x30.png” come texture).

cyclesbake02_a


3) Impostiamo cycles come sistema di rendering attivo.

Nel pannello Info, alla voce Engine impostiamo Cycles Render.

cyclesbake03

 


4) Aggiungiamo un pannello per la visualizzazione ‘rendered’.
Non è uno step obbligatorio ma  è di grande aiuto per capire immediatamente se ci sono dei problemi (materiali settati male, luci non efficaci e via dicendo) senza rischiare di accorgercene solo dopo aver rezzato IW i nostri oggetti e le nostre texture.

Creiamo un pannello aggiuntivo in cui imposteremo una 3D View con modalità di visualizzazione Rendered ( in pratica mostra in un rendering in tempo reale con precisione progressiva) in questo modo potremo avere sempre il polso di cosa andremo ad ottenere una volta renderizzato il tutto, ma nel contempo potremo continuare a lavorare velocemente nella 3D view principale.

cyclesbake04

Ecco un esempi di come potrebbe essere organizzato il nostro layout:

cyclesbake05

 


4) Creiamo i materiali per le mesh.
Dobbiamo creare un materiale per ogni mesh in modo da informare Blender su come le mesh stesse dovranno reagire alla luce e alle ombre (riflessioni, trasparenze, emissioni di luce, texture,…), dobbiamo fare ciò per
ogni oggetto che dovrà essere coinvolto nel rendering della scena (non importa se dovrà anche essere importato in SL, ma se la sua presenza ha effetti sul rendering finale dovremo comunque gestirlo).

Una cosa molto importante di cui rendersi conto è che la gestione delle proprietà dei materiali tramite Blender Internal o Cycles è estremamente differente e che, anche se anche se hanno dei punti in comune, di fatto dobbiamo adottare sin da subito uno dei due approcci in un dato progetto di lavoro  se non vogliamo rischiare di perdere la rotta e non aver mai la certezza di cosa effettivamente sia attivo in un dato momento per un dato oggetto.

In questo esempio utilizzeremo il Node Editor per gestire i materiali con Cycles, ovviamente è possibile utilizzare anche il sistema classico e vedremo come realizzare i 3 materiali per i tre oggetti della nostra scena, ma le possibilità offerte dal Node Editor sono estremamente più ampie.

Per lavorare con i materiali attraverso il NodeEditor dobbiamo assicurarci esso sia attivato per i materiali e per far questo selezioniamo in materials il checkbox Use Node (o impostiamo ciò direttamente dal Node Editor).

4.a) Creiamo il materiale per cubo1.
Il primo cubo non presenta caratteristiche di rilevo, per cui limitiamoci a selezionarlo, cancellare il materiale di default e creiamo un materiale dedicato a lui (matcube1simlple).

cyclesbake06 cyclesbake07 cyclesbake06c

4.b) Creiamo il materiale per cubo2.
Il secondo cubo invece sarà dotato di un materiale che ’emette’ una luce diffusa, per ottenere ciò, come per cubo precedente, rimuoviamo il materiale di default, creiamone uno nuovo (matcube2light), infine sostituiamo il nodo Diffuse BSDF un nodo Emissive e colleghiamolo al nodo material output. Sempre dal nodo emissive possiamo impostare il colore e l’intensità dell’emissione di luce.

cyclesbake08 cyclesbake09

4.c) Creiamo il materiale per piano3.
Per il piano, i primi step sono sempre gli stessi, via il materiale di default e creiamo un nuovo materiale (matplane3textured), dato che, in questo caso vogliamo utilizzare anche una texture esterna, aggiungiamo un nodo Image Texture (Add > Texture > Image Texture)  a cui specifichiamo lo slot in cui si trova la texture (quello che contiene chesstexture_30x30.png)  e colleghiamolo infine il nodo al Diffuse BSD (da color a color).

 cyclesbake10 cyclesbake11


Bene, ora che abbiamo preparato tutto come si deve possiamo concentrarci sul baking vero e proprio,  dalla sua esecuzione sino alla finalizzazione rezzando il frutto delle nostre fatiche IW.
Il tutto nella seconda parte dell’articolo.

Posted in Texture & Grafica and tagged , , , , , , , .

Leave a Reply

Your email address will not be published.