top of page

TEMA 3 - TEXTURARE DUPA IMAGINE

Scopul temei

Corelarea imaginilor cu modelele 3D nu este un proces liniar: folosim fotografii pentru a crea modele ale realitatii, dar modelele au nevoie de texturi pentru a arata veridic. Texturile - care sunt tot imagini - pot avea ca baza de pornire aceeasi fotografie care a stat la baza generarii modelului. Scopul exercitiului de acum este sa va arate procedeul prin care legam un model de textura lui. Tehnica, numita Unwrapping in terminologia CGI, este larg raspandita si depaseste cu mult cadrul particular al modelarii dupa imagine.

Veti invata:

- sa construiti coordonate de mapare (UV-uri) pentru un obiect poligonal

- sa transferati informatie de culoare dintr-un canal in altul ale aceluiasi obiect

- sa faceti optimizarile necesare pentru a va usura munca din etapa urmatoare, Editarea Texturii, care face subiectul unui alt exercitiu. 

Cerinte tema

Sa se construiasca UV-urile canalului 1 de mapare al obiectului.
Sa se randeze textura de culoare difuza a obiectului in acest canal, folosind ca sursa fotosfera dupa care s-a lucrat pana acum.

Sa se optimizeze canalul 1 in vederea simplificarii muncii ulterioare de editare in pixeli.

Documentatie

Aveti nevoie de scena .max realizata in exercitiul anterior. Daca nu o aveti, o puteti descarca de aici: rectori2.zip sau din pagina disciplinei, folderul Materiale Curs.

Pentru o intelegere mai buna a tematicii, urmariti aceste tutoriale Autodesk.

TEXTURARE DUPA IMAGINE (tutorial video)

Tot ceea ce am facut pana acum cu imaginea sferica a avut rostul de a obtine o buna proiectie pe o cutie, pentru a ne indruma in modelare. Dar daca tot avem aceasta proiectie, de ce sa nu o transformam intr-o textura proprie a incaperii pentru a avea nu doar modelul, ci si culoarea lui difuza? 
Avem si acum o "culoare" data de imaginea sferica, insa in forma actuala rezultatul nu e credibil, fiindca exista unghiuri moarte, mese si statui proiectate pe pereti, reflexii "incorporate" in parchet, etc. Toate acestea trebuie corectate in photoshop, insa nu o vom putea face pe o imagine sferica. Avem nevoie de o desfasurata cat mai apropiata de formele reale ale peretilor, podelei si tavanului, pe care o vom obtine in exercitiul de azi.

1. Mai intai ne facem loc, mutand toata informatia de imagine pe un canal de mapare secundar, astfel:
- deschideti Editorul de Materiale si dati dublu-clic pe mapa asociata materialului pe care l-ati facut pentru partea 1 a exercitiului. Este materialul aflat in prezent pe obiect. In zona Details > UV Channel scrieti 2 in loc de 1. Materialul e asociat in continuare obiectului, dar fiindca obiectul nu are canalul 2 de mapare, nu mai stie cum sa foloseasca textura.
- modificati si obiectul, selectandu-l. Apoi, in Control Panel > Modify clicati in lista de modificatori pe cel mai recent dintre ei (UVW Map) si schimbati si aici UV Channel din 1 in 2. Daca totul merge bine imaginea de pe obiect va reaparea, ca si cand nimic nu s-a intamplat. Totusi, acum canalul 1 de mapare este liber si poate fi customizat.

2. Acum vom pregati canalul 1 de mapare pentru a primi texturile desfasurate, astfel:
- Cautati in lista de modificatori pe cel numit Unwrap UVW si selectati-l.
- Asigurati-va ca modificatorul Unwrap sta chiar deasupra lui Editable Poly (dragati-l acolo daca cumva s-a asezat mai sus)
- Intre uneltele oferite de acest modificator exista butonul "Open UV Editor". Clicati-l si se va deschide editorul de uv-uri. Aici vom stabili corespondenta dintre poligoanele din spatiul 3D si imaginea lor plana.
- In UV Editor, selectati toate poligoanele (CTRL+A), apoi alegeti din meniul editorului Mapping > Normal Mapping. Din lista derulanta alegeti Box Mapping si dati OK. Ca urmare, toate poligoanele s-au proiectat in directia cea mai apropiata de  sus-jos, dreapta-stanga respectiv fata-spate, asa incat acum avem o desfasurata "in adevarata marime". Exista insa poligoane suprapuse, cum ar fi mesele de diapozitive si podeaua, dar si mult spatiu UV nefolosit.

3. Vom optimiza UV-urile astfel:
- Eliminati suprapunerile selectand iar toate poligoanele (in caz ca s-au deselectat), apoi clicand pe butonul Pack Custom (in partea din dreapta jos a editorului) Poligoanele au fost redistribuite asa incat acum fiecare ocupa un loc al lui si numai al lui in spatiul UV. 
- Pentru a nu avea prea multe spatii nefolosite in 2D (pixeli irositi), schimbati setarile comenzii Pack Custom bifand optiunea Fill Holes, apoi apasati din nou pe butoul Pack Custom. Observati ca poligoanele au fost redistribuite mai compact acum.
- Pentru usurinta editarii ulterioare in Photoshop, e bine ca anumite bucati (clusters) sa stea alaturi in 2D, asa cum o fac in 3D. De exemplu parchetul de pe podea ar fi foarte greu de corectat daca partile lui ar fi risipite, asa cum se intampla acum. Selectati in viewport toate poligoanele care alcatuiesc podeaua, apoi clicati pe butonul cu fulger (situat imediat sub butonul Open UV Editor). Observati ca in UV Editor poligoanele s-au redistribuit si acum formeaza un grup compact, asemanator formei podelei (chiar daca distorsionat).
- In UV Editor, repozitionati, scalati si - daca e cazul - rotiti grupul selectat asa incat sa il incadrati intr-un spatiu liber (evitati suprapunerile cu alte poligoane!)
- Acum canalul 1 e pregatit corespunzator. Inchideti UV Editor si colapsati modificatorul Unwrap (clic dreapta pe el si Collapse To). Tot ce exista in stiva de modificari, pana la Unwrap inclusiv, dispare; dar informatia nu se pierde, ci este incorporata in obiect (care a devenit un Editable Poly). 

4. Tot ce a ramas de facut este sa "turnam" pixelii vizibili acum pe obiect (din canalul 2) in canalul 1, asa incat sa obtinem un mesh curat, cu o textura bine organizata si usor de editat in Photoshop. Acest transfer se realizeaza cu comanda Render to Texture (sau "Bake", in alte programe). Procedati astfel:
- Din meniul Rendering > Render Setup schimbati motorul de randare implicit (probabil Art Renderer, ori poate Vray daca il aveti instalat) cu motorul traditional Scanline (comanda Render to Texture nu functioneaza altfel)
- Din meniul Rendering, alegeti comanda Render to Texture (sau apasati tasta 0). In dialogul care se deschide, faceti urmatoarele setari:

General Settings > indicati programului calea catre folderul unde doriti sa isi faca randarile (recomandabil aceeasi cale cu cea catre fisierul vostru .max)
Objects to Bake > daca obiectul era deja selectat cand ati dat comanda, el apare deja in lista de "bake"; daca nu, selectati-l in vieport si observati ca numele lui (Box001) se incarca imediat in lista. Asigurati-va de asemenea ca la Mapping Coordinates e selectata optiunea "Use Existing Channel" iar alaturi, Channel=1. 
Output > Clicati butonul Add si alegeti, din lista de oferte, optiunea Diffuse Map (fiindca informatia de culoare este aceea pe care vrem sa o "coacem" in harta pe care o vom produce)
La File Name and Type alegeti un nume pt textura voastra (preferabil cu sufixul _DIF de la diffuse) si un tip de fisier (preferabil .png) 
La Map Size alegeti optiunea maxima disponibila, 2048x2048.
Bake material > bifati Render to Files Only pentru a produce doar un fisier imagine pt textura, nu un intreg material (vom face noi materialul ulterior).

Dupa ce ati facut toate aceste setari, apasati pe butorul Render. Rezultatul orientativ apare in fereastra de randare. Pt a vedea imaginea reala produsa de comanda, duceti-va prin Windows Explorer la folderul de lucru. Observati ca aveti acum suprafetele desfasurate, rectangulare si nedeformate ale tuturor suprafetelor, pe care le veti edita in exercitiul urmator - Photoshop.

 

5. In final se face ordine in fisier:
- Selectati obiectul, iar in tabul Modify stergeti toti modificatorii de deasupra lui Editable Poly (si-au facut treaba, nu ne mai trebuie)
- In Material Editor, creati un material nou, tot de tip standard, dati-i un nume (precum 'rectori') si puneti-i la culoarea difuza textura care a fost creata mai devreme de comanda Render to Texture.
- Faceti materialul vizibil in viewport si atribuiti-l obiectului Box001.
- Dati si obiectului un nume sugestiv (precum 'rectori')
- Salvati scena .max cu alt nume.

 

6. ANEXA: pentru viitoarea editare a texturii construite acum, veti avea nevoie ca atunci cand lucrati pe textura sa identificati usor corespondenta dintre ea si poligoanele din 3D. Pentru aceasta, puteti tine scena deschisa si adaugati din nou obiectului modificatorul Unwrap (il puteti adauga si sterge/colapsa de cate ori vreti, el e folosit atat la modificarea cat si la vizualizarea UVurilor existente). Apoi, cu editorul de UV-uri deschis, clicati poligoanele cautate in viewport. Ele se vor inrosi in Editor. Cateva unelte ale Editorului de UV-uri va pot fi de ajutor aici:


a/ Afisati textura ca fundal in Editor, asa incat sa urmariti mai usor corespondenta dintre poligoanele selectate in 3D si reprezentarea lor plana;


b/ Puteti muta si chiar suprapune anumiti clusteri in Editor, pentru a refolosi informatia data de pixelii texturii - dar in nici un caz sa nu faceti modificari masive, automate in UVuri. Orice astfel de modificare trebuie urmata de un alt Render-to-Texture. Daca ati facut o modificare cat de mica in aranjamentul din Editor, nu uitati sa dati Collapse To pentru a o incorpora in mesh.


c/ Daca trebuie sa delimitati anumite zone in Photoshop (spre exemplu pentru a le umple cu culoare) folositi unealta Render to Template; aceasta creaza pentru voi o imagine a spatiului UV (o harta de pixeli) care poate fi suprapusa ca un nou layer, in Photoshop, peste textura de prelucrat.

Rezultatul final al modelarii dupa fotosfera

bottom of page