Jak mapować obiekty w 3ds maxie? opis modyfikatora UVW map
Czym jest modyfikator UVW map? To nic innego jak proste mapowanie obiektu, ale hej, czym jest samo mapowanie? A no jest to odpowiednie ustawienie tekstury na obiekcie tak, aby wyglądało to jak chcemy i jak powinno, czyli dobrze,schludnie i bez dziwnych artefaktów. Najlepiej wyjaśnia to przykład poniżej, który co prawda odnosi się do Unwrapowania za pomocą modyfikatora Unwrap UVW ale tak właśnie wygląda dobre zmapowanie obiektu ; )
UVW map vs Unwrap UWM
Kilkukrotnie spotkałem się ze stwierdzeniem, że UVW map to mapowanie dla „ubogich”, chodzi oczywiście o brak odpowiedniej wiedzy w dziedzinie powiedzmy zaawansowanego mapowania poprzez użycie modyfikatora Unwrap UVW.
Bzdura, bzdura i jeszcze raz bzdura.
Są sytuacje(a jest ich całe mnóstwo), że nie warto bawić się w pełne Unwrapowanie obiektu ,a wystarczy użyć gotowych „presetów” modyfikatora UVW map. Oczywiście przy bardziej skomplikowanych obiektach, zwłaszcza tych nie hard-surface jak chociażby ludzi ,to użycie UVW map to trochę… świadome wchodzenie na minę. Ponadto dzięki Unwrap UVM mamy znacznie większą kontrole , co przekłada się na lepszy efekt końcowy nawet w przypadku prostych obiektów. Dzieje się tak bo zawsze można stworzyć konkretnie tą jedną teksturę , która zawiera wszelkie detale jakie tylko chcemy i GDZIE tylko chcemy. Minus tego to na pewno mniejsza uniwersalność takiej tekstury :)
Czy UVW to, to samo co XYZ?
I tak i nie. Tak bo w przestrzeni 3D używamy współrzędnych X(pozioma oś)Y(pionowa)Z(prostopadła) , a w mapowaniu czyli przestrzeni 2D UVW. Tak więc X = U, Y=V, Z=W . W takim razie skoro jest to, to samo to dlaczego są inne oznaczenia? A no dlatego, żeby się nie mylić ,ponieważ to co zrobimy w przestrzeni 2D zostaje w niej ; )
Gizmo
Służy do zmiany położenia tekstury na obiekcie. Dzięki niemu możemy przesuwać ręcznie mapę na obiekcie, skalować, obracać itd. Ich kształt zmienia się w zależności od wyboru typu mappingu czyli dla Planar jest…plane, dla Cylindrical jest cylinder, Spherical i Shrink Wrap da nam kule , Box da nam pudełko , a Face i XYZ to UVW nie dadzą nam nic ; )
Opcje modyfikatora UVW map – Parameters
Koniec z tym wstępem i wyjaśnianiem, skoro tu trafiłeś to w 95% wiesz co to mapowanie i po prostu chciałbyś bliżej poznać opcję modyfikatora UVW map. Zanim jednak przejdziemy opisu opcji to przy nakładaniu tekstury należy pamiętać, że PRZYJMUJE SIĘ(a więc nie zawsze się to sprawdza) iż powinny one być kwadratowe czyli o rozdzielczości 512×512 i wzwyż.
Mapping Type
Tutaj określamy typ mapowania jaki chcemy zastosować. Do wyboru mamy aż i tylko siedem typów.
Planar – czyli projekt mapy na obiekcie jako… plane czyli w postaci prostokąta. Chodzi o to ,że tylko jedna wybrana strona obiektu będzie dobrze zmapowana. Trochę to może przypominać slajd ;)
Kiedy to się przydaje? Tylko wtedy, gdy potrzebujemy dobrze zmapowany tylko jeden bok wybranego obiektu, wielu boków obiektu z różnym id(multiple sides) oraz dwóch symetrycznych boków.
Jak widać w przykładzie poniżej w obu przypadkach dla boxa jedynie jedna strona jest dobrze odwzorowana. O ile przy teksturze z koliberkiem to nie psuje efektu i reszta ścian jest biała(dlatego, że i reszta tekstury jest po prostu biała) to przy Checkerze już to nie wygląda zbyt fajnie. UVW map jako Planar rozciąga krawędzie w tył stąd przy nałożeniu mapy Checker wygląda to tak jak na obrazku.
Cylindrical – tu chyba wszystko jasne i proste bo to po prostu mapowanie cylindryczne obiektu. Dodatkowo posiadamy opcję „Cap” dzięki ,której czemu na górze i dole naszego cylindro-podobnego obiektu będzie wszystko dobrze wyglądało. Warto też dodać, że jeśli posiadamy teksturę, która jest odpowiednio dobrze zrobiona to nie będą na niej widoczne przejścia w miejscu „styku” mapy samej ze sobą. Warto dodać po raz drugi ale odnośnie opcji Cap, otóż ,jeśli koniec(góra bądź dół obiektu) nie znajduje się pod kątem prostym to wtedy użycie tej opcji może spowodować, że tekstura trochę „najedzie” na boki obiektu.
Kiedy to się przydaje? Teoretycznie przydaje się tylko dla obiektów o kształcie cylindrycznym i podobnych a w praktyce… tak samo choć na pewno może się zdarzyć, że przyda się też dla obiektów nie cylindrycznych ale to sporadyczne przypadki. Aczkolwiek zdarza się również ,że dla cylindrycznych obiektów lepiej zastosować typ Box ; )
Niżej widać, że ten typ mapowania przydaje się zwłaszcza dla etykiet, która bardzo dobrze leży na obiekcie. Z checkerem już gorzej, przy użyciu Cap mimo wszystko coś się tam psuje i skalowanie także czy przesuwanie nie pomaga.
Spherical – czyli kulisty typ mapowania. Szwy czyli łączenia tekstury widać zarówno na górze jak i na dole kuli co można zaobserwować doskonale na przykładzie.
Kiedy to się przydaje? Tylko(no może nie tylko ale głównie :)) w przypadku obiektów o kulistym kształcie lub zbliżonym do kulistego.
Poniżej przykład użycia domyślnego ustawienia na ten sam cylinder i box co poprzednio oraz na kule. Widać, że na cylinderze koliberek się trochę rozjechał : )
Shrink Wrap – wykorzystuje kuliste mapowanie ale obcina narożniki mapy i łączy jest wszystkie razem na jednym biegunie a nie na dwóch jak w przypadku Spherical.
Kiedy to się przydaje? Kiedy chcemy ukryć dziwaczne zakończenia mapy.
W przykładzie poniżej widzimy jedno i to samo ujęcie ale przy użyciu dwóch typów ,po lewej Shrink-wrap a po prawej Spherical i właśnie teraz widać znacząca różnicę pomiędzy tymi dwoma typami :)
BOX – po samej nazwie można się domyśleć, że chodzi o pudełkowe mapowanie. Tak więc działa to tak, że każda strona obiektu będzie mapowana jako Plane.
Kiedy to się przydaje? Praktycznie najczęściej bo dużo obiektów jest w jakimś stopniu prostokątnym boxem. Nadaje się więc do obiektów o kształcie bazującym na prostokącie.
Poniżej widać, że gdy wybierzmy dla kuli typ mapowania na Box to robi się coś bardzo dziwnego. Z kolei dla boxa wygląda wszystko ideolo ; )
FACE – czyli mapowanie względem wielokątów obiektu. Działa to tak, że jeden wielokąt(face) = jednatekstura. I tak właśnie przy obiekcie składającym się z 1024 wielokątów, mapa powtórzy się właśnie tyle razy i przyjmie kształt taki jak dany wielokąt.
Kiedy to się przydaje? To już zależy od obiektu, który stworzymy i jak dobrze mamy ułożona siatkę. Przy pięknej równej siatce może się przydac np. jako tekstura światła od samochodu ; )
Na obrazku poniżej bardzo ładnie widać jak tekstura się rozprowadza na każdy jeden face.
XYZ to UVW – bardzo ciekawy typ bo co on robi to „przykleja” naszą teksturę do obiektu. Chodzi tutaj o to, że jeśli powierzchnia obiektu rozciąga się bądź kurczy to tekstura nie rozciąga się i nie kurczy nienaturalnie ale prawie zawsze będzie niemal idealnie zmapowana na obiekcie.Trzeba pamiętać o tym, aby zarówno UVW map jak i materiał w Material Editor ustawić ten sam kanał mapy(Map channel)
Kiedy to się przydaje? Przy teksturach proceduralnych symulujące np. animacja efektu popękanej wazy,.
Parametry
Przejdźmy do parametrów samych typów mapowania.
Length/Width/Height – czyli kolejno określamy długość, szerokość i wysokość.
Co trzeba pamiętać to dla Planar wysokość jest niedostępna , dla Face i XYZ to UVW żaden parametr nie jest dostępny z oczywistych powodów opisanych wyżej.
U,V,W tile – czyli określamy tutaj powtarzalność tekstury na bazie trzech osi U,V,W czyli jak już wspomniałem wyżej w przestrzeni 3D X,Y. Wartość 0 oznacza zerowe powtarzanie czyli kompletny brak tekstury, 1 to jednokrotne powtarzanie, 2 – dwukrotne itd. Dodatkowo mamy opcję Flip ,która pozwala na odwrócenie tekstury względem właśnie tych trzech osi.
Real-world- map-size – po zaznaczeniu mapa przybierze wielkość rzeczywistą bazując na rozmiarze obiektu oraz wybranej jednostce. Warto zwrócić uwagę i należy to wiedzieć, że skalowanie obiektu wraz z nałożonym modyfikatorem UVW map nie zmienia wielkości world-map-size, dopiero gdy skonwertujemy obiekt do editable poly/mesh ,to wtedy przeskalowując zmieniamy rozmiar world-map-size.
Channel
Tutaj nie ma filozofii ani żadnych trudności.
Channel – w tym miejscu wybieramy kanał mapy a dokładnie numer, który ustawiliśmy w material editor. Czasem może się zdarzyć, że pomimo nałożenia tekstury na obiekt , nie będzie ona widoczna. W takim przypadku należy właśnie przejrzeć czy kanały się zgadzają oraz czy zaznaczyliśmy opcję Show shaded Material In Viewport w parametrze materiału w material editor.
Vertex Color Channel – pozwala na kopiowanie właśnie tego kanału z jednej siatki do drugiej np. z kanału 0 do 3. Wyjaśnię to może tak , zasadniczo korzystamy w viewporcie z vertex color channel 0 a że w viewporcie możemy podglądać kanały oświetlenia i kanał alfa to są one przechowywane w tymczasowych kanałach 1 ,2 . I teraz jeśli chcemy skorzystać z tych przechowywanych danych w kanałach innych niż 0 potrzebujemy skrypt UVWtoRGB z tej strony . Po krótce oznacza to ,że możemy mieć różne kolory wierzchołków dla diffuse, specular itd.
Alignment
Tutaj określamy w jaki sposób chcemy wyrównać naszą teksturę na obiekcie, oczywiście dokonujemy tego także w oparciu o osie X,Y,Z. Na co warto zwrócić uwagę to ,ze z pozoru zmiana osi może dawać taki efekt jak użycie Flip w grupie Mapping to w istocie jest to co innego. Zmiana osi powoduje odwrócenie nei samej tekstury jak w przypadku Flip a orientacje GIZMO obiektu, trzeba o tym pamiętać :)
Ponadto możemy także manipulować kształtem gizma całkowicie ręcznie, nie poprzez skalowanie ale przeciąganie boków. Po naciśnięciu przycisku Manipulate ukaże nam się pomocny plane oraz box na szczycie obiektu. Box(1) ten służy do skalowania Gizma w górę bądź w dół, natomiast krawędzie przy plane(2) to skalowania rozmiaru każdej ścianki gizma. Warto dodać ,że opcja ta nie działa z Shrink Wrap, Face oraz XYZ to UVW.
FIT- opcja ta ułoży nam równiotko gizmo a co za tym idzie teksturę względem rozmiarów obiektu.
Center – czyli centruje gizmo.
Bitmap Fit- ciekawa i użyteczna opcja, po kliknięciu w ten przycisk wybieram teksturę i wtedy 3ds max sam ustawia odpowiednio teksturę na obiekcie. Aby uzyskać lepszy efekt należy najpierw użyć FIT a dopiero potem tej opcji.
Normal Align- klikając raz możemy interaktywnie ustawić sobie teksturę na obiekcie przytrzymując LPM na obiekcie. Wielkość gizmo nie ulega zmianie.
View Align-ustawia gizmo względem aktualnie ustawionego kąta widoku w viewporcie bądź kamery. Tutaj także wielkość gizma nie ulega zmianie.
Region Fit- tutaj włączamy taki tryb, który pozwala na ręczne położenia i w przeciwieństwie do Normal align także na zmianę rozmiaru gizmo.
Reset-po prostu resetuje ustawienia gizmo do początkowych z automatycznym użyciem Fit.
Acquire –po wybraniu tej opcji możemy skopiować ustawienie współrzędnych UVW innego obiektu. Możemy to zrobić na dwa sposoby czyli już po kliknięciu na wybranych obiekt z którego współrzędne chcemy skopiować pojawi się nowe okienko z wyborem Acquire Absolute i Acquire Relativ. Ten pierwszy powoduje, że obiekt bierze współrzędnie z drugiego wybranego ale samo gizmo zostaje także przy tym drugim obiekcie. Natomiast przy tym drugim sposobie zarówno współrzędne jak i samo gizmo zostaje skopiowane.