Tip:
Highlight text to annotate it
X
Salve gente sono Max Puliero e dopo bel po' di tempo
ritorno a fare è un breve tutorial
su Blender e Cycles. Voglio parlare di una tecnica per mappare
delle superfici e abbastanza estese come ad esempio
qui ho un corpo intero
che usa differenti UV layout.
è una tecnica che viene usata molto spesso
è una tecnica che viene usata molto spesso
è una tecnica che viene usata molto spesso
quando si hanno dei corpi interi che condividono unico materiale
quando si hanno dei corpi interi che condividono unico materiale
e c'è bisogno di textures abbastanza grandi. Quindi vanno suddivise in piu` parti.
Ad esempio vediamo che qua ho la testa, poi il torso
poi ci sono le braccia e le gambe
poi ci sono le braccia e le gambe.
Il modello in questo caso e` un lowpoly
forse usare Cycles come renderer non e` la scelta migliore
pero` va bene comunque per spiegare questa tecnica.
Se ad esempio avessi voluto usare un'unica mappa per tutto il corpo,
contanto che ormai in produzione si usano mappe da 4k, ossia 4096*4096,
contanto che ormai in produzione si usano mappe da 4k, ossia 4096*4096,
contanto che ormai in produzione si usano mappe da 4k, ossia 4096*4096,
avrei dovuto usare una mappa da 8000*8000 pixel.
avrei dovuto usare una mappa da 8000*8000 pixel.
ovvero una mappa abbastanza pesante da gestire sia per il PC che per Photoshop.
ovvero una mappa abbastanza pesante da gestire sia per il PC che per Photoshop.
ovvero una mappa abbastanza pesante da gestire sia per il PC che per Photoshop.
alcune volte si superano i 4k per singolo UV layout, arrivando ad 8 o 16k,
alcune volte si superano i 4k per singolo UV layout, arrivando ad 8 o 16k,
quindi suddividere le uv in layouts e` un obbligo.
quindi suddividere le uv in layouts e` un obbligo.
In produzione e` una tecnica standard,
quindi mi sono chiesto come ottenerla in Cycles.
quindi mi sono chiesto come ottenerla in Cycles.
Bene...
qui abbiamo un modello di una sorta di scimmione low-poly
Con le UV separate in questo modo...
Probabilmente per un modello del genere
un solo layout sarebbe stato piu` che sufficente,
pero` in questo tutorial voglio spiegare come gestire le mappe suddivise,
non vorrei soffermarmi su questo punto.
Io ho gia` creato le mappe
e adesso le sto aprendo una ad una..
.....
...l'ultima questa...
c'è la testa, il torso,
le braccia e le mani
e per finire le gambe. Con le rispettive Normal-maps
estratte tramite multi-resolution non molto dettagliato (lol)
estratte tramite multi-resolution non molto dettagliato (lol)
non serve piu` e quindi lo elimino.
Adesso iniziamo a vedere come si comportano le varie mappe in viewport
Adesso iniziamo a vedere come si comportano le varie mappe in viewport
Adesso iniziamo a vedere come si comportano le varie mappe in viewport
Vado a selezionare le mappe precedentemente create.
Vado a selezionare le mappe precedentemente create.
La testa,
il torso,
... torso color ...
poi vegono le braccia,
... arms color ...
e infine ci sono le gambe.
Ora abbiamo qusta situazione,
attiviamo il texture solid,
e vediamo che ho fatto un lavoro di painting (un po approssimativo)
infatti si notano un po' i seams della texture. ma non importa.
in pratica ho fatto un "face assign" per ogni UV layout.
in pratica ho fatto un "face assign" per ogni UV layout.
Infatti se vado a controllare,
la mappa e` assegnata ad ogni zona correttamente.
la mappa e` assegnata ad ogni zona correttamente.
Il problema e` che per ora non c'e` assegnato nessun materiale.
Il problema e` che per ora non c'e` assegnato nessun materiale.
Assegnando un materiale, si nota che anche se in viewport vediamo la texture
il render sara` bianco.
il render sara` bianco
perche` non c'e` assegnata nessuna texture Quella che vediamo e` solo una preview.
A noi oggi non interessa il Blender Internal
ma Cycles
ma Cycles
Quindi adesso passiamo da Blender Render a Cycles
cycles ragiona in modo diverso Quindi la preview in viewport scompare
cycles ragiona in modo diverso Quindi la preview in viewport scompare
ma non importa...
Adesso facciamo uno split della viewport
e apriamo il "node editor"
e apriamo il "node editor"
vediamo quindi il materiale diffuse e attiviamo "use nodes"
Proseguiamo dicendo che
voglio assegnare una mappa "diffuse" per il momento
voglio che
le mie 4 texture mostrate in precedenza
confluiscano nello slot "diffuse" del materiale.
Ovviamente essendo una mesh unica priva di giunture evidenti
Ovviamente essendo una mesh unica priva di giunture evidenti
non si devono vedere i seams
quindi mi conviene avere un unico materiale.
Allora
ricontrolliamo la disposizione del layout UV
ricontrolliamo la disposizione del layout UV.
Quindi per riuscire ad assegnare le texture correttamente
quindi per riuscire ad assegnare le texture correttamente
su ogni spazio uv
che va da 0-1, 1-2, 2-3, 3-4 devo crearmi una maschera,
questa la ottengo tramite una texture "checker"
questa la ottengo tramite una texture "checker"
che si va ad inserire nello slot "diffuse"
che si va ad inserire nello slot "diffuse"
Se si vuole vedere la preview
bisogna andare in modalita` "render"
e regoliamo direzione e intensita`
... e salviamo il file!
Bene
selezioniamo il modello
si ha una cosa di questo tipo,
un materiale con la texture checker nel "diffuse"
con il valore "scale" a 5.
che indica che lo spazio UV e` suddiviso con una griglia di 5*5 di quadrati di colore alternato
che mi crea difatto una maschera di 2 colori.
che mi crea difatto una maschera di 2 colori.
bianco e grigio
bianco e grigio
se ora cambiamo lo "scale" della mappa a 1
se ora cambiamo lo "scale" della mappa a 1
Colleghiamo il vectore alle coordinate UV
Colleghiamo il vectore alle coordinate UV
vediamo che il checker operera` come una maschera degli spazi UV
vediamo che il checker operera` come una maschera degli spazi UV
analiziamo al situazione
il primo blocco UV e` la testa
il primo blocco UV e` la testa
che occupa lo slot grigio del checker
il secondo blocco e` il torso,
ossia la parte in mezzo del corpo
che risulta bianca
la terza parte sono lo braccia e abbiamo di nuovo il grigio
la quarta parte e` occupata dalla gambe che sono bianche.
quindi vediamo che dando scala 1 al "checker" si ottiene un pattern "bianco/grigio"
che si ripete
andando a definire un unico colore
andando a definire un unico colore
per ogni spazio UV
in quanto la texture non e` vincolata da un unico spazio UV,
ma si ripete in modo infinito sui vari layouts
ma si ripete in modo infinito sui vai layout
per capire in modo chiaro
lavoriamo con dei colori semplici
prima di tutto aggiungiamo un nodo "mapping" fra il nodo "checker" e il nodo "texture coordinate"
prima di tutto aggiungiamo un nodo "mapping" fra il nodo "checker" e il nodo "texture coordinate"
quindi collego l'output "UV" al nodo mapping per vincolare la mappatura
se non collego in questo modo, si ha un errore di mappatura
se non collego in questo modo, si ha un errore di mappatura
anche se sarebbe comodo che la mappatura "UV" fosse di dafault
anche se sarebbe comodo che la mappatura "UV" fosse di dafault
dal nodo "mapping" attiviamo le voci "min" e "max"
dal nodo "mapping" spuntiamo le voci "min" e "max"
dal nodo "mapping" spuntiamo le voci "min" e "max"
quindi notiamo che il modello e` diventato mono-colore
quindi notiamo che il modello e` diventato mono-colore
Per spiegare questo iniziamo col dire che stiamo lavorando sull'asse Y
ossia l'asse verticale
Se le UV fossero state disposte in modo orizzontale, avremmo lavorato sull'asse X
Se le UV fossero state disposte in modo orizzontale, avremmo lavorato sull'asse X
attivando "Min" e "Max" vado a definire
il grigio come primo colore
il grigio come primo colore.
Cambiano quel colore infatti
si va a modificare il colore della testa e delle braccia
ossia le aree che vengono influenzate
dal colore del secondo slot della mappa "checker"
dal colore del secondo slot della mappa "checker"
anche se a rigor di logica il promo colore sarebbe dovuto essere quello in alto...
Assegnamo un colore e andiamo a vedere come lavorano il "min" e il "max"
fissando l'area "max" a 1
Belnder ripetera` il colore fino al bordo superiore del primo spazio
dopo di che ripetera`
il colore rosso in questo caso, all'infinito
non considerando di fatto lo slot bianco della mappa checker...
Blender da 0 a 1 legge il colore rosso
arrivando a 1, cioe` il bordo del primo spazio UV
arrivando a 1, cioe` il bordo del primo spazio UV
si continuera` quindi ad avere il colore rosso.
e questo e` giusto perche` ci interssa
delimitare la maschera per il primo blocco UV
delimitare la maschera per il primo blocco UV.
Quindi duplichiamo insieme la mappa "checker" e il nodo "mapping"
Quindi duplichiamo insieme la mappa "checker" e il nodo "mapping"
( cambiamo da CPU a GPU )
Ok, procediamo.
Adesso definiamo l' UVlayout che va dallo spazio 1 a 2
Adesso definiamo l' UVlayout che va dallo spazio 1 a 2
Adesso definiamo l' UVlayout che va dallo spazio 1 a 2
ok....
una volta definita la seconda area sempre tramite il nodo "mapping"
sto andando a bloccare la seconda parte..
quindi rosso bianco
questa qua è la parte rossa
la vado ad inserire nello slot rosso
la vado ad inserire nello slot rosso
e poi mi devo ricordare di cnnettere il canale delle UV
e poi mi devo ricordare di cnnettere il canale delle UV
e poi mi devo ricordare di cnnettere il canale delle UV
...Ok...
ricapitolando:
il primo blocco e` quello rosso
il primo blocco e` quello rosso
vedendo in viewport costatiamo che la testa e` rossa
vedendo in viewport costatiamo che la testa e` rossa
e tutto quello che viene dopo, non viene definito dal primo nodo "mapping"
e tutto quello che viene dopo, non viene definito dal primo nodo "mapping"
e tutto quello che viene dopo, non viene definito dal primo nodo "mapping"
e tutto quello che viene dopo, non viene definito dal primo nodo "mapping"
ricontrolliamo il primo checker per avere conferma
ricontrolliamo il primo checker per avere conferma
ok
quindi il primo checker che definisceil primo spazio UV tramite il colore rosso
andra` a inserirsi nello slot rosso del secondo checker
andra` a inserirsi nello slot rosso del secondo checker
per favorire l'alternanza dei checker
dal mapping ho creato un nuovo vincolo che va da 1 a 2
dal mapping ho creato un nuovo vincolo che va da 1 a 2
Blender non calcolera` cio` che vede sotto il valore 1 e influenzera` fino al limite del secondo blocco UV
Blender non calcolera` cio` che vede sotto il valore 1 e influenzera` fino al limite del secondo blocco UV
Blender non calcolera` cio` che vede sotto il valore 1 e influenzera` fino al limite del secondo blocco UV
quindi considera solo il blocco UV che va da 1 a 2 dell'asse Y
tutti i blocchi UV sopra il valore 2, verranno influenzati
perche` per ora non c'e` nessuna maschera che definisce la mappatura
perche` per ora non c'e` nessuna maschera che definisce la mappatura
proseguendo su tutti i layout con, in questo caso, il colore bianco
proseguendo su tutti i layout con, in questo caso, il colore bianco
proseguendo su tutti i layout con, in questo caso, il colore bianco
cambio colore, metto il blu
cambio colore, metto il blu
inizia a diventare chiaro, o no?
quindi duplichiamo ancora i nodi "checker" e "mapping"
tramite shift+d
colleghiamo subito le coordinate UV
colleghiamo subito le coordinate UV
e settiamo "min" a 2 e "max" a 3
ok....adesso....in pratica succede
ok....adesso....in pratica succede
ok....adesso....in pratica succede
che questo
le inserisco nello slot blu...
..ok...
infatti questa maschera lavora sulle UV delle braccia
infatti questa maschera lavora sulle UV delle braccia
gli assegno un colore giallo.. state capendo come funziona?
se lo spazio corrente e` occupato dal primo slot ossia quello blu
se lo spazio corrente e` occupato dal primo slot ossia quello blu
lo spazio UV successivo sara` necessariamente occupato dall'altro slot.
quindi andando a "bloccare"
lo slot blu dello spazio precedente, lasciando libero lo spazio
dove inseriro` la mappa che influisce quella zona.
dove inseriro` la mappa che influisce quella zona...
So che sembra complesso, ma in realta` una volta capita la logica
So che sembra complesso, ma in realta` una volta capita la logica
ci si mette davvero poco a realizzare il sistema di nodi
ci si mette davvero poco a realizzare il sistema di nodi...
continuiamo duplicando ancora "cheker" e "mapping"
colleghiamo le UV
colleghiamo le UV
impostiamo "min" a 3 e "max" a 4
impostiamo "min" a 3 e "max" a 4
ossia l'ultimo spazio UV
essendo libera la parte gialla..
...le UV successive saranno occupate necessariamente dall'altro colore.
scegliamo un colore.... fuxia!
scegliamo un colore.... fuxia!
Ok.... ci siamo creati il nostro sistema di maschere
Ok.... ci siamo creati il nostro sistema di maschere
Ok.... ci siamo creati il nostro sistema di maschere
quindi adesso vedo che nello slot rosso, andro` ad inserire la texture della testa...
...nello slot blu quella del torso...
...nello slot giallo quella delle braccia...
...nello slot giallo quella delle braccia...
...e nello slot fuxia la texture delle gambe
...e nello slot fuxia la texture delle gambe.
Chiudiamo dunque i nodi, che probabilmente non andranno piu` modificati...
Chiudiamo dunque i nodi, che probabilmente non andranno piu` modificati...
... in quanto se abbiamo gia` creato UV e textures...
...non penso che le cose cambieranno molto.
...non penso che le cose cambieranno molto.
Ok, cominciamo ad importare le nostre textures.
Ok, cominciamo ad importare le nostre textures.
Apriamo come prima texure, quella della testa
Apriamo come prima texure, quella della testa
che andra` ad inserirsi nello slot rosso.
che andra` ad inserirsi nello slot rosso.
...Head Color...ok...
Vediamo che la testa adesso ha la sua texture applicata correttamente..
Vediamo che la testa adesso ha la sua texture applicata correttamente..
Vediamo che la testa adesso ha la sua texture applicata correttamente.
Chiudiamo anche questo nodo.
Chiudiamo anche questo nodo.
Duplichiamo il nodo texture...
per il secondo spazio UV occupato dal torso.
quindi selezioniamo la mappa "torso color"
e inseriamola nello slot
e inseriamola nello slot
...passiamo al successivo...
duplichiamo ancora il nodo "texture"
e ci sono le braccia
selezioniamo la mappa "arms color"
e la inseriamo nello slot corrispondente.
L'ultimo spazio UV e` occupato dalla gambe
quindi apro la texture corrispondente
e inseriamola nello slot.
ok!
chiudiamo tutti i nodi "superflui"
ok
...ordiniamo un po la disposizione dei nodi...
...ordiniamo un po la disposizione dei nodi...
in modo tale che se dopo dobbiamo ritoccare qualcosa , facciamo velocemente.
in modo tale che se dopo dobbiamo ritoccare qualcosa , facciamo velocemente.
chiudiamo anche il nodo "texture coordinates"
creaiamo un nuovo layout dal menu` "frame"
creaiamo un nuovo layout dal menu` "frame"
e imparentiamo i nodi al frame tramite ctrl+p
e lo chiamiamo "diffuse"
ok, adesso e` già tutto molto piu` ordinato!
adesso voglio aggiungere anche le normal maps create in precedenza,
non devo necessariamente rifare tutto il procedimento precedente,
mi basta selezionare tutto il blocco di nodi e lo duplico (shift + d)
mi basta selezionare tutto il blocco di nodi e lo duplico (shift + d)
e rinomino il layout con la voce "normal"
adesso dovro` semplicemente sostituire le mappe di diffuse con le normal maps.
adesso dovro` semplicemente sostituire le mappe di diffuse con le normal maps.
... selezioniamo "non-color data"
... selezioniamo "non-color data"
poi viene il torso...
poi viene il torso...
poi le braccia, quindi seleziono la texture "arms normal"
per finire, seleziono la normal map delle gambe.
per finire, seleziono la normal map delle gambe.
poi selezioniamo il nodo "normal map"
poi selezioniamo il nodo "normal map"
aggiungiamo anche il nodo "bump"
e colleghiamolo all'impout "normal" dello shader...
e colleghiamolo all'impout "normal" dello shader...
controlliamo se funziona.... uhm uhm....
uhm uhm....
ops! scusate, ho sbagliato valore!
ok, funziona!
quindi in pratica, bisogna pensare al sistema di maschere, come se fosse un'unica texture
quindi in pratica, bisogna pensare al sistema di maschere, come se fosse un'unica texture
quindi in pratica, bisogna pensare al sistema di maschere, come se fosse un'unica texture
quindi in pratica, bisogna pensare al sistema di maschere, come se fosse un'unica texture
quindi in pratica, bisogna pensare al sistema di maschere, come se fosse un'unica texture
pensandola in questo modo diventa tutto piu semplice!
La cosa positiva e` che nonostante il numero di UV layouts e textures, abbiamo un solo materiale!
La cosa positiva e` che nonostante il numero di UV layouts e textures, abbiamo un solo materiale!
La cosa positiva e` che nonostante il numero di UV layouts e textures, abbiamo un solo materiale!
e non siamo costretti a duplicare materiali per ogni UV layout.
e non siamo costretti a duplicare materiali per ogni UV layout.
Se ad esempio volessi creare un materiale piu` complesso
Se ad esempio volessi creare un materiale piu` complesso..
..aggiungere un mix shader...
..aggiungere un materiale glossy...
..aggiungere un materiale glossy...
collego le mappe di color e normal...
collego le mappe di color e normal...
collego le mappe di color e normal...
insomma le solite cose...
(...)
(...)
(...)
(...)
(...)
(...)
Si vede che ormai lavoro solo sullo shading,
e considero i blocchi di textures, come se fossero una singola mappa.
e considero i blocchi di textures, come se fossero una singola mappa.
e considero i blocchi di textures, come se fossero una singola mappa.
Proviamo anche ad aggiungere il bump, duplicando l'intero layout,
e lo inserisco nell'input "height" del nodo "bump"
e lo inserisco nell'input "height" del nodo "bump"
e lo inserisco nell'input "height" del nodo "bump"
e lo inserisco nell'input "height" del nodo "bump"
selezioniamo quindi le corrispettive mappe,
selezioniamo quindi le corrispettive mappe,
selezioniamo quindi le corrispettive mappe,
ok funziona!
(scusate la bassa qualita` delle mappe)
seleziono il bump-map del torso...
seleziono il bump-map del torso...
...poi arms...
...poi legs...
ok, abbiamo aggiunto anche il bump,
ok, abbiamo aggiunto anche il bump,
rinominiamo il layout "bump" appunto
avete visto come alla fine diventa semplice lavorare con questo sistema
cosi` da potersi concentrare solo sullo shading.
fine del tutorial! spero di essere stato utile.
Potete trovare il file in qui sotto,
quindi sentitevi liberi di scaricarlo e di usarlo come meglio credete!
quindi sentitevi liberi di scaricarlo e di usarlo come meglio credete!
Come ultima cosa,
vedete che qui ho gli occhi del mio modello, che hanno un materiale diverso.
vedete che qui ho gli occhi del mio modello, che hanno un materiale diverso.
Ovviamente in questo caso
vado ad assegnargli un altro materiale
quindi il discorso degli spazi UV non conta,
conta SOLO quando il materiale e` condiviso da piu` textures.
conta SOLO quando il materiale e` condiviso da piu` textures.
La tecnica di cui ho parlato riguarda principalmente corpi interi che condividono lo stesso materiale.
La tecnica di cui ho parlato riguarda principalmente corpi interi che condividono lo stesso materiale.
l'occhio e` un materiale differente rispetto al corpo,
avendo un solo UV layout e` anche piu` veloce da creare.
avendo un solo UV layout e` anche piu` veloce da creare.
controlliamo in render....
..ok!
spero di essere stato utile, e spero che questo sistema faccia comodo a qualcuno!
spero di essere stato utile, e spero che questo sistema faccia comodo a qualcuno!
ciao e alla prossima!
ciao e alla prossima!