Panel Logowania

Podstawy teksturowania UV

napisał : maniek
08
stycznia
2013
Długo oczekiwany przez wielu użytkowników tutorial o podstawach teksturowania UV obiektów 3D. Mam nadzieję, że pomoże Wam w opanowaniu sztuki UV Mappingu.
tagi : tekstury UV mapping Unwraping UV/Image Editor

Mapowanie UV

Najbardziej elastyczną metodą mapowania tekstur 2D na obiekt 3D jest proces o nazwie "UV mapping". W procesie tym staramy się  trójwymiarową siatkę obiektu(X, Y i Z) rozłożyć do postaci dwuwymiarowej (X i Y... a raczej U i V). Odpowiednie części siatki UV tekstury są zatem odwzorowanie poprzez odpowiednie face'y na modelu 3D. Teksturowania UV używa się, aby wprowadzić realizm i detale dla obiektu trójwymiarowego. Poniższy obrazek wyjaśnia jak rozłożyć siatkę 3D na siatkę 2D :

 

Edytor UV

W Blenderze znajduje się edytor UV wraz z narzędziami, z którego będziemy korzystać w trakcie tworzenia modeli do gry. Najszybszym sposobem przełączenia się do edytora UV, jest wybranie layout'u "UV Editing" w górnej część okna Blendera.

Oczom ukaże nam się idealnie podzielona przestrzeń na dwa okna Blendera : UV/Image Editor i 3D View - dwa okna konieczne do swobodnego mapowania obiektu.

Pierwszy Unwrapping

Pierwsze mapowanie zrobimy, a jakże by inaczej, na standardowym Cube ;)

Najpierw w oknie UV/Image Editor w stopce klikamy przycisk "+ New". Jest to przycisk tworzenia nowej tekstury w Blenderze. Pojawi się popup z różnymi opcjami nowej tekstury :

  • Name - dobryk nawykiem jest nazywanie tekstur zgodnie z ich przeznaczeniem
  • Width - długość wyrażona w pikselach
  • Height - wysokość wyrażona w pikselach
  • Color - kolor tekstury; działa tylko i wyłącznie gdy opcja "Generated Type" ustawiona jest na "Blank"
  • Alpha - tworzy obrazek z kanałem alpha
  • Generated Type - trzy typy tekstury; często używa się ich do celów testowych. Wybierzmy UV Grid.

Przyciskiem OK tworzymy nową teksturę, która pojawi się w oknie UV/Image Editor.

Przechodzimy kursorem myszy nad okno 3D View, zaznaczamy Cube'a jeśli nie jest i wciskamy [Tab], aby przejść do trybu [Edit Mode]. Będąc w tym trybie, bądźmy pewni, że wszystkie wierzchołki mamy zaznaczone([A-key] zaznacza i odznacza). Następnie wciskamy klawisz [U] wywołując menu [UV Mapping] i wybieramy [Reset - powoduje że każdy face obiektu wypełnia idealnie teksturę w oknie UV/Image Editor] :

W tym momencie moglibyśmy oczekiwać, że naszą teksturę zobaczymy na obiekcie, lecz tak się nie stanie ponieważ jesteśmy w trybie Shadingu Solid i prawdopodobnie nasz Cube nie posiada materiału. Na szczęście nie musimy od razu tworzyć materiał z odpowiednimi ustawieniami, aby zobaczyć efekty mapowania. Będąc myszką w oknie 3D, klikamy klawisz [N](View -> Properties) otwierając panel Properties okna 3D View. Znajdujemy sekcję [Display] i zaznaczamy opcję [Textured Solid], dzięki czemu zobaczymy efekty naszego mapowania.

Przejdźmy z powrotem do okna UV/Image Editor i klikając klawisz [S] skalujemy siatkę UV. Podczas skalowania zobaczycie w oknie 3D View, że tekstura zmienia swoje koordynaty na obiekcie.

Ok pierwsze mapowanie mamy za sobą;) Trzeba jeszcze nałożyć materiał z odpowiednimi ustawieniami, aby tekstura i nasze mapowanie było widoczne w BGE.

Wybierzmy z powrotem layout "Default". W oknie Properties przejdźmy do panelu Materials i dodajmy nowy materiał do naszego Cube'a. Następnie przejdźmy do Panelu Tekstur, dodajmy nową teksturę i wybierzmy Typ [Image or Movie].

Z przeglądarki tekstur wybieramy tą która wygenerowaliśmy w oknie UV/Image Editor.

No i ostatnia rzecz - koordynaty. W sekcji [Mapping] zmieniamy parametr [Coordinates] z [Generated] na [UV]. To zmusi teksturę do ułożenia się na obiekcie według naszego mapowania.

Dzięki tym ustawieniom, efekt naszego mapowania zobaczymy w BGE.

Mapowanie kuli

Teraz może coś praktyczniejszego. Pokażę szybki sposób nałożenia teksturę planety na kulę. Teksturkę możemy pobrać sobie ze strony : http://planetpixelemporium.com/planets.html Ja posłużę się teksturą Ziemi ;)

Otwieramy Blendera, dodajemy obiekt Sphere, przejdźmy do layoutu [UV Editing]. W oknie UV/Image Editor wczytujemy naszą teksturę planety. Przechodzimy do okna 3D View. Upewnijmy się, że jesteśmy w widoku [Front Ortho] (NumPad1). Klikamy klawisz [U] i z menu UV Mapping wybieramy pozycję [Sphere Projection]. Po tym w oknie UV/Image Editor zeskalujmy siatkę według osi Y ([S-Key]+[Y-Key]). Powinniśmy mieć taki widok :

Teoretycznie mamy poprawnie zmapowaną teksturę Ziemi. Nie licząc zniekształcenia na Antarktydzie ;)

Rozcinanie siatki(Seams i Unwrapping)

Ważną częścią procesu Unwrapingu jest rozcinanie siatki modelu, aby można było ją rozłożyć w przestrzeni 2D. Działa to na zasadzie selekcjonowania krawędzi i oznaczenia ich jako Seams(szwy) - miejsca oznaczone do rozłączenia/rozcięcia.

Jako przykład postaramy się zunwrapować Suzan - blenderową małpkę.

Otwieramy Blendera i dodajemy model Monkey ([Shift + A] -> Mesh -> Monkey). Przechodzimy do trybu [Edit Mode], odznaczamy wszystkie wierzchołki (klawisz [A]) i wybieramy Edge jako typ selekcji (Ctrl + Tab).

Jak oznaczać szwy? Zaznaczmy krawędź/ie, klikamy skrót klawiszowy [Ctrl + E] i z menu wybieramy [Mark Seams]. Zaznaczone krawędzie zabarwią się na czerwono, czyli to będą miejsca rozcięcia podczas unwrapingu. [Clear Seam] powoduje odznaczenie jako szwów zaznaczonych krawędzi. Jeśli chcemy szybko odznaczyć wszystkie szwy, zaznaczamy klaiwszem A wszystkie wierzchołki, [Ctrl + E] -> Clear Seams.

W poniższych screenach postaram się pokazać, które krawędzie oznaczyć jako szwy :

Po oznaczeniu szwów, zaznaczamy wszystkie wierzchołki, klikamy klawisz [U] i z menu wybieramy pozycję [Unwrap] :

Jak widzimy w oknie UV/Image Editor, siatka Suzane zaczyna się rozkładać według szwów.

Jest dobrze, ale tekstura na uszach naszego modelu jest bardzo rozciągnięta, dlatego odetniemy też uszy ;) Pokazuję na jednym uchu, które krawędzie należy zaznaczyć. Analogicznie trzeba zaznaczyć krawędzie na drugim uchu.

I znowu zaznaczmy wszystkie wierzchołki, następnie [U] -> Unwrap.

Uszy już lepiej, lepiej ale nie do końca. Jeszcze trochę potnijmy te uszy ;)

Po unwrapingu widzimy, że siatka na uszach jest rozłożona o wiele lepiej.

Wprowadźmy jeszcze cięcia w dwóch miejscach. Na czole i brodzie.

Siatka jeszcze bardziej się rozłoży :

I tak mamy w miarę poprawnie rozłożoną siatkę Suzan.

Export UV layout

Załóżmy, że chcemy mieć własną, różnorodną teksturę nałożoną na obiekt. Na szczęście UV/Image Editor pozwala nam na zapis  rozłożonej siatki do zewnętrznego pliku, którego możemy edytować w dowolnym programie do obórki grafiki rastrowej np.: GIMP.

A więc powróćmy do naszego Cube'a i zunwrapujmy go w taki oto sposób :

Teraz w oknie UV/Image Editor przechodzimy do menu [UVs] i wybieramy pozycję [Export UV layout]. W opcjach zapisu wybieramy odpowiedni dla siebie format i rozmiar. Następnie klikamy przycisk Export UV layout.

Ja stworzyłem sobie plik *.png, w którym widać naszą siatkę UV. W Gimpie przygotowałem sobie taką o to teksturę :

Wyeksportowaną w Gimpie teksturę wczytujemy w oknie UV/Image Editor, tworzymy materiał z teksturą z odpowiednimi ustawieniami i gotowe ;)

Podsumowanie

To by było na tyle jeśli chodzi o podstawy teksturowania. Mam nadzieję, że poruszyłem wszystkie najważniejsze kwestie dotyczące UV mappingu, i pozwoli Wam doskonalić wasze umiejętności.

6 komentarzy
maniek napisał :
godz. 20:13, 8 stycznia 2013
LubuPL.. mam nadzieję, że skorzystasz i się dużo nauczysz ;)
LubuPL napisał :
godz. 21:31, 8 stycznia 2013
Miałem małe problemy z teksturowaniem na bazie Mark Seam, ale problem jest już rozwiązany. Może następny tutorial zrób o teksturach Alpha, bo przyda mi się to do liści palm ;)
maniek napisał :
godz. 21:52, 8 stycznia 2013
Owszem następny będzie o alpha.. Ale powiedz czy coś nowego się nauczyłeś jeśli chodzi o teksturowanie?? coś Ci się rozjaśniło??
LubuPL napisał :
godz. 22:38, 8 stycznia 2013
Oczywiście, sporo się dowiedziałem, ponieważ wcześniej potrafiłem jedynie oteksturować sześcian za pomocą Unwrap :lol: . Pojęcia "Mark Seam" za bardzo nie znałem i nie wiedziałem jaki jest do niego skrót klawiszowy :) Teraz nauczyłem się kilku bardzo przydatnych rzeczy, które na pewno kiedyś użyję w moich projektach. Dziękuję serdecznie za tutorial i pozdrawiam :)
keszisz napisał :
godz. 10:26, 2 marca 2018
nałożyłam teksturę na sfere, jadnak mam problem z zapisaniem kuli. Jak ją zapisać?
maniek napisał :
godz. 11:00, 2 marca 2018
Ale co znaczy "zapisać"? Zapisać plik blendera??
Dodaj komentarz
Aby dodać komentarz do newsa, musisz być zalogowany w Serwisie.. Zaloguj