[tutorial] Mapowanie

Informacje o grze, modach, trybie on-line itd.

Moderator: Ekipa Gry

Regulamin działu
1. Zakaz publikowania linków do nielegalnych gier/modów/cracków;
2. Zakaz poruszania tematów związanych z nielegalnym łamaniem zabezpieczeń gier/modów - piratom nie pomagamy;
3. Zanim zadasz pytanie sprawdź czy problem nie został już omówiony i rozwiązany.
4. Nie dubluj tematów.
5. Jeśli nie masz nic konkretnego do powiedzenia - nie wypowiadaj się. Zaśmiecasz w ten sposób temat uniemożliwiając szybkie dotarcie do ważnych informacji i zajmujesz czas moderatorów, którzy muszą po tobie sprzątać. Wszelkie pogawędki można realizować poprzez komunikator bądź PW. Forum do tego nie służy.
6. Grafiki umieszczaj w postaci linku bądź miniatur z odnośnikiem.

Postprzez hideto N sie 16, 2009 3:49  [tutorial] Mapowanie

Autor: Koen Calleyl
tłumaczenie: hideto
Autor modelu: Rolnik sam w dolinie

Rozdział 1 - czym jest mapowanie ?

Każdy trójwymiarowy model jest zbudowany z konkretnej liczby polygonów (zaczynając od kilku set a na kilku milionach skończywszy). Jeśli chcemy wyświetlić na nim jakąś teksturę, potrzebujemy bit mapy, która zostanie na nim wyświetlona w konkretny sposób. Obrazek poniżej przedstawia co mam na myśli. To moje Ferrari F2007 z FSOne 2007 i jego tekstura

Obrazek


Jak możecie zauważyć, struktura polygonów (mesh) widoczny jest w górnym lewym rogu, w prawym widnieje nałożona na niego tekstura. By osiągnąć stworzyć poprawną teksturę, musisz pomalować nadwozie samochodu tak by pasowało do struktury ukazanej w lewym górnym rogu. Podsumowując, górny lewy obrazek jest tym co nazywamy 'mapowaniem'.
Obrazek
Dopiero gdy stracimy wszystko stajemy się zdolni do wszystkiego. Prawie śmierć niczego nie zmienia, dopiero śmierć... zmienia wszystko.
Avatar użytkownika
hideto
 
Dołączył(a): Cz maja 03, 2007 18:15
Lokalizacja: Łódź

Postprzez hideto N sie 16, 2009 3:54  Re: [Tutorial] Mapowanie

Rozdział 2 - waga dobrego mapowania

Mapowanie jest bardzo często elementem traktowanym po macoszemu, powód ku temu jest prosty. Gdy pracujesz godzinami nad modelem samochodu, widzisz postęp, to samo tyczy się malowania. Tymczasem mapowanie jest tylko przenośnią, elementem łączącym pomiędzy trój wymiarem a płaską powierzchnią, nie widać zmian ponieważ nie ma tekstury do chwili skończenia pracy. Podczas mapowania, samochód zachowa swój jednolity kolor przypisany mu w programie 3D, o ile oczywiście nie przypiszesz do niego zupełnie pozbawionej sensu tekstury.
Jak powiedziałem wcześniej, mapowanie jest momentem krytycznym pomiędzy pracami 3D i 2D. Najlepsi graficy i modelerzy świata mogliby pracować nad danym projektem, jeśli żaden z nich nie jest w stanie wykonać dobrego mapowania, samochód ma ogromne szansę stać się kompletną klapą.
Obrazek
Dopiero gdy stracimy wszystko stajemy się zdolni do wszystkiego. Prawie śmierć niczego nie zmienia, dopiero śmierć... zmienia wszystko.
Avatar użytkownika
hideto
 
Dołączył(a): Cz maja 03, 2007 18:15
Lokalizacja: Łódź

Postprzez hideto N sie 16, 2009 4:06  Re: [Tutorial] Mapowanie

Rozdział 3 - Przykazania mapowania

Jak już zapewne zauważyliście, czytając wstęp, mapowanie przypisuje każdemu polygonowi (zazwyczaj dużym elementom z nich złożonych) konkretne miejsce w przestrzeni mapowania. Przestrzeń mapowania zależy od rozmiarów tekstury, np 1024x1024, 2048x2048 itp. Należy pamiętać, że gry preferują potęgi dwójki jako wartości.

Jest niezwykle ważne, by wszystkie elementy miały tę samą rozdzelczość, za wyjątkiem nieistotnych elementów jak wnętrza dziur które są po prostu czarne bądź elementy które nie wymagają 'renderowania cieni', jednak o tym później.

Posiadanie wszystkich elementów w tej samej rozdzielczości, oznacza że jeśli będziemy linię biegnącą przez teksturę, będzie ona na wszystkich elementach po których biegnie tak samo szeroka. Jeśli postąpisz inaczej, efektem będzie problem taki jak pokazano poniżej. Podczas tutorialu, wszystko będzie skalowane tak samo.

Co zrobiłem: stworzyłem plan 4x4 segmenty (16 polygonów, 32 trójkąty) i zmapowałem na nich tekstrę(obraz poniżej jest zdecydowanie przeskalowany, linia ma 1 piksel szerokości). Załadowałem teksturę na plan i zmieniłem rozmiar mapowania na dolnej części. Zmniejszyłem go, to oznacza, że na tej samej powierzchni 3D znajduje się mniej pikseli, a więc wszystko jest 'większe'.

ObrazekObrazek

Teraz użyj swojej wyobraźni, powiedzmy że 2 górne segmenty kwadratu to góra bolidu Formuły 1 mieszcząca się na nosie, dolne 2 segmenty to bok tego nosa. Jesli linia biegnąca przez nie będzie linią podziału blach, szybko przekonasz się, że wyglądać to będzie fatalnie.
Obrazek
Dopiero gdy stracimy wszystko stajemy się zdolni do wszystkiego. Prawie śmierć niczego nie zmienia, dopiero śmierć... zmienia wszystko.
Avatar użytkownika
hideto
 
Dołączył(a): Cz maja 03, 2007 18:15
Lokalizacja: Łódź

Postprzez hideto Pn sie 17, 2009 10:10  Re: [tutorial] Mapowanie

Rozdział 4 - Zaczynamy - Edytor materiałów (The Material Editor)

Edytor materiałów może być wyświetlony poprzez wciśnięcie klawisza "M", bądź wciśnięcie lewym przyciskiem myszy, ikony złożonej z 4 różnokolorowych kul umieszczonych na głównym pasku narzędzi. Edytor jest jednym z najważniejszych i niestety również najtrudniejszych elementów jakie posiada 3D Studio Max. To tutaj ustala się wszelkie właściwości materiałów. Pierwsze co możemy zmienić to typ materiału. Standardowo jest on ustalony jako "Standard", jest wiele innych, ale tylko jeden jest ważny(dla procesów przenoszenia modelu do gry ważne są jeszcze inne). Podstawowymi właściwościami trybu "Standard" są "Diffuse color" i "Specular color" itp itd. Dla twórcy czy to 3D czy to 2D istotny jest tylko Specular Color odpowiedzialny za refleksy. Oczywiście gdy przechodzimy do renderowania, pozostałe wartości również nabierają znaczenia.

Obrazek

Bolid Formuły 1 wymaga więcej niż jednej tekstury. Wewnątrz MMG dzielimy je na: TOP(góra bolidu), Left, Right (odpowiednio lewa i prawa strona bolidu), TYREWALL (ścianka opony), TYRETHREAD('bieżnik' opony), BRAKES(hamulce), RIMS(felgi), CARBON(włókno węglowe), SUSPENSION(zawieszenie), WOODPLANK(deska pod bolidem), COCKPIT(kokpit),TCAM(t-cam). Wszystko tylko dla jednego samochodu...

Z tego powodu używamy ustawienia "Multi/Sub-Object" zamiast "Standard". By to zmienić, kliknij przycisk z napisem "Standard" i po prostu wybierz z listy "Multi/Sub-object". Jeśli pojawi się okno dialogowe, po prostu wybierz opcję "Discard old material'. Od tej chwili możesz używać 10ID (10 różnych tekstur), każde pojedyncze ID jest oznaczone jako "Standard" i posiada kolor czarny, który można zmienić.

Jeśli klikniesz przycisk "Set ID Button', możesz zmienić liczbę poszczególnych ID, w pełni zmapowany bolid MMG posiada około 24 odseparowanych od siebie tekstur.

Każdemu ID można sprecyzować jego właściwości poprzez kliknięcie przycisków poniżej napisu "sub-Material". By wrócić do poprzedniego widoku, wystarczy kliknąć strzałkę oznaczoną opisem "Go to parent".

Obrazek

W pustych polak obok numeru ID, wpisujemy nazwy materiałów, a w zasadzie to co będą dane materiały przedstawiać. Nie jest to niezbędne, ale zdecydowanie zalecane, później dowiecie się czemu.

Po tym gdy dodaliśmy i opisaliśmy tyle materiałów ile potrzebujemy, możemy już zaznaczyć wszystkie obiekty w scenie i przypisać im utworzony materiał poprzez wciśnięcie przycisku "Assign Material to Selection'.

Obrazek

Prawdopodobnie zaczynacie zastanawiać się, jakie różnice są pomiędzy właściwością "Standard" i "Multi/Sub-Object". To bardzo proste. Do pierwszego z nich można przypisać TYLKO jedną teksturę, do drugiego PRZYNAJMNIEJ jedną.


Standardowy materiał (niezależnie czy jako on sam czy jako część Multi/Sub-object) załaduje kolor o nazwie oznaczony jao "Diffuse". Jeśli kolor zmienimy na czerwony, to przypisany do niego przedmiot w scenie zmieni kolor na czerwony. To co chcemy osiągnąć to załadowanie tekstury jaką chcemy użyć. By to osiągnąć musimy wcisnąć mały kwadratowy przycisk obok koloru "Diffuse". Ujrzymy listę widoczną poniżej.

Obrazek

Do Mapowania, używam "Checker", podczas malowania grafik zmienia ten parametr na "Bitmap" i wskazuje na dysku lokację pliku graficznego który ma zostać wyświetlony.

Wciśnięcie przycisku "checker" otworzy listę opcji jak poniżej:

Obrazek

Zaznaczyłem istotne dla nas opcje czerwonymi prostokątami. Kolory, biały pozostawiam bez zmian, drugi kolor dobieram w zależności od tego co mapuję, każdemu ID nadaję osobny kolor.

"Tiling", decyduje jak wiele razy prosty element jest powtórzony na szerokości i wysokości materiału. Zazwyczaj ustawiam tę wartość w granicach 50. Oczywiście powinieneś brać pod uwagę to jak wyglądać będzie scena na twoim komputerze. Nie powinna być ani zbyt mała, ani zbyt duża.

Wreszcie, najważniejszą opcja. Malutki przycisk również zaznaczony na czerwono. Po najechaniu na niego myszą ujrzycie napis "Show Standard Map In Viewport". Jeśli nie aktywujecie tego przycisku, na waszym modelu nie zostanie wyświetlona żadna tekstura (nie zależnie czy jest to kratka, bitmapa czy cokolwiek innego).

Obrazek

"M" obok pola koloru Diffuse oznacza że do tego materiału przypisano już teksturę, w naszym przypadku "Checker". Jeśli wciśniesz ten przycisk znów ujrzysz właściwości tekstury. Pamiętaj, zawsze możesz wrócić do tego miejsca poprzez opcję "Go To Parent".

Jak widzisz, kratka została wyświetlona na modelu, jesteśmy gotowi by iść dalej.

Obrazek

Tak wygląda struktura z którą będę pracował. Dokładnie tak ustawiamy to w MMG. Każde z 3 ID posiada już kratkę, każda w innym kolorze.
Obrazek
Dopiero gdy stracimy wszystko stajemy się zdolni do wszystkiego. Prawie śmierć niczego nie zmienia, dopiero śmierć... zmienia wszystko.
Avatar użytkownika
hideto
 
Dołączył(a): Cz maja 03, 2007 18:15
Lokalizacja: Łódź

Postprzez hideto Pt wrz 04, 2009 19:43  Re: [tutorial] Mapowanie

Rozdział 5 - Właściwości polygonów - Material ID

Jeśli chcemy kontynuować, ważnym jest by konkretne polygony pokazywały Górę ID, inne Lewe itp itd. Przydatne na tym etapie jest usunięcie wszelkich efektów symetrii i użycie jedynie połowy samochodu, co też uczynię.

Będę używał Williamsa FW31 stworzonego przez jednego z modelerów WCP. Z tego co mi powiedziano jest to jego drugi model zrobiony w życiu. Oczywiście to oznacza, że nie jest to model idealny do pracy, ale nie mam aktualnie innego którego bym jeszcze nie zmapował.

Obrazek

Połowa samochodu, którą mam na myśli, zawiera wszystko nie licząc rzeczy takich jak T-cam, kamery w na nosie, zawieszenie, koła, hamulce i kokpit. Zaznacz samochód, powinieneś ujrzeć 'bouncing box' (te białe elementy na rogach) wokół niego:

Obrazek

Po prawej patrzysz na panel kontrolny, to przy jego pomocy większość co widzimy do tej pory zostało zrobione. Oczywiście samochód musi być złożony z edytowalnych polygonów (editable polygons). Jeśli tak nie jest, zaznacz go i klikając prawym przyciskiem myszy wybierz "convert to -> Editable poly".

Jeśli wciśniesz '+' tuż obok napisu 'editable poly', kilka elementów pojawi się na liście. Takie same znajdują się poniżej listy.

Obrazek

Podczas modelowania używam wszystkich 5 opcji. Podczas mapowania jedynie polygon(czasami również 'elements', lecz dla kogoś bez niezbędnej wiedzy na temat 3DS Max'a pominę to, przynajmniej teraz.) Gdy wciśniesz 'polygon', powinieneś ujrzeć panel jak niżej:

Obrazek

Podkreśliłem opcje 'ignore backfacing' ponieważ to opcja którą zazwyczaj mam ustawioną jako aktywną. Ignorowanie tylnej strony czyni niemożliwym do zaznaczenia polygonów które są do nas odwrócone tyłem. Dla przykładu, jeśli patrzysz na górny fragment przedniego skrzydła, to polygony są do ciebie zwrócone przodem, polygony z drugiej strony będą odwrócone plecami. Zaznaczę tę opcję, ponieważ podczas zaznaczania polygonów, możesz zaznaczyć poygon który jest zupełnie gdzie indziej, niż ten który chcesz zaznaczyć. Ignorowanie upewni nas, że jeśli kliknąłeś na polygon a on się nie podświetlił, to oznacza to, że nie zaznaczyłeś żadnego innego.

Teraz by rozpocząć proces mapowania, kliknij na 'myszkę'

Obrazek


A więc, jeśli jesteś na liście polygon, to możesz zaznaczyć tylko polygony. Dla przykładu, jeśli zaznaczysz Vertex'y to będziesz mógł podświetlić jedynie kwadraciki oznaczające łączenie dwóch granic. Wciśnij Ctrl+A by zaznaczyć wszystkie polygony (Ważne: Nie zaznaczaj polygonów przy pomocy myszki, używamy ignorowania tylnej ściany i nie zaznaczysz przy jej pomocy wszystkich polygonów.). Przesuń listę polygonów w dół, znajdziesz opcje 'Set ID'. Wybierz numer którego nie planujesz używać. Na obrazku poniżej możesz ujrzeć że jest tam napis "no name -(4)". Zapewniam was, gdy będzicie pracować przy około 20 materiałach, na pewno zaczniecie je mylić ze sobą. Zalecam by opisywać dokładnymi nazwami wszystkie materiały.

Wybrałem ID którego nie będę używał by zrobić konkretną granice miedzy polygonami już przypisanymi i resztą.

Obrazek

(Ważne: Jeśli twój samochód nie posiada siatki, albo twoje polygony nie są czerwone, użyj klawiszy F2, F3 i F4)

Zaczynam zaznaczać górę nosa (zazwyczaj zaczynam właśnie tak). Kliknij na polygonach które chcesz mieć aktualnie zaznaczone. Używaj kombinacji ctrl+LPM.

Obrazek

Teraz we właściwościach polygonów (lista po prawej) zmień ID na ID na którym chcesz mieć teksturę nosa, w tym przypadku będzie to ID 1.


Obrazek

Zanim odznaczysz polygony (klikając gdziekolwiek indziej na viewpointcie), zalecam dodać jeszcze jeden polygon do aktualnego zaznaczenia. Jak tylko to zrobisz, pola obok "Set:ID" i dwie opcje obok będą puste. To znaczy że masz zaznaczone polygony należące do 2 różnych ID. Miej na uwadze, że gdy zaznaczasz kolejne polygony które chcesz dodać do innego ID, to opcje te powinny wskazywać wybrane przez ciebie na początku ID (w naszym przypadku 4).

Kontynuuj przypisywanie właściwych ID do wszystkich polygonów. Na końcu możesz wykonać sprawdzenie robiąc coś takiego:

Obrazek

Odznacz wszystkie polygony i wpisz ID używane dla całego samochodu (w naszym przypadku 4) w polu 'Select ID' i wciśnij 'Select ID'. Wszystkie polygony przypisane do ID 4 zostaną zaznaczone, jak widzicie na obrazku, w tej chwili pozostało mi 2816 polygonów do przypisania. Na samym końcu powinieneś zobaczyć napis '0 polygons selected'.

Obrazek

Wygląda na to że wciąż mam dużo do roboty...

Będąc początkującym, ciężko zorientować się co powinno być na górze, a co na bocznych ID. Czas pokaże, warto również brać przykład z bardziej doświadczonych mapperów.

A więc, przypisaliśmy już wszystkie (nie zrobiłem tego do końca, ale powinno ci to pokazać główną ideę) będziesz posiadał coś mniej więcej takiego:

Obrazek

Teraz, we właściwościach polygonów, zaznacz ID 1. Znów ujrzysz zaznaczone polygony należące do ID1 podkreślone na czerwono. Powinieneś pozostawić je zaznaczone i dodać UVW Mapping na ich szczycie.

Możesz zrobić to poprzez kliknięcie strzałki pod nazwą obiektu i wybrać UVW Mapping.

Zobaczysz żółtą ramkę, jej nazwa to 'gizmo'. Dla większości mappowanych elementów, używamy zwykłego planu, ponieważ tekstury są przeważnie kwadratowe. Wybierz opcję planu (jest ona wybrana standardowo). Pamiętaj co powiedziałem, mapowania powinny posiadać te samą rozdzielczość. Określasz ją poprzez wpisanie wartości w polach 'length' i 'widith'. Ma to duży wpływ na wielkość gizmo. Ponieważ mamy kwadrat, obie wartości powinny być takie samo. Zapamiętaj te wartość, wpisz np 500 zamiast 499,44466565856356.

Obrazek

Ustaw orientację gizmo. Wybieraj położenia X, Y bądź Z póki gizmo nie będzie leżało tak jak tego sobie życzysz. Dla ID1, jako że będą to górne tekstury, gizmo powinno być planem leżącym nad bolidem.

Obrazek

Ostatni krok, z podświetloną UVW Map modifier, załaduj 'Unwrap UVW' na nim. Powinieneś ujrzeć coś takiego:

Obrazek

Jeśli nie widzisz okna 'Edit UVW', możesz otworzyć je klikając przycisk 'edit'. W oknie 'Edit UVW' możesz edytować mapowanie, aktualnie jedynie poruszać nim. W miejscu gdzie widzisz aktualnie "ALL IDs" wybierz
1: Material xx', ponieważ chcesz aby wyświetlił się jedynie górny ID.

Aby posunąć się dalej, zamknij okno Edit UVW i prawym przyciskiem kliknij na 'Convert To: editable Poly" i zaznacz wszystkie polygony z ID2. Dodaj mapowanie UVW, pamiętając o orientacji gizmo i jego wielkości.

Teraz posiadam coś podobnego do obrazka poniżej. Pamiętaj że polygony z ID1 nie są już widoczne, ponieważ nie były zaznaczone podczas dodawania UVW map modifier.

Obrazek

Prekonwertuj wszystko do 'editable poly'. Teraz bez wchodzenia do opcji 'polygonów' dodać unwrap UVW na nie. Znów otwórz okno edycji UVW. Teraz widzisz oba elementy samochodu. Jak na obrazku poniżej (ważne: przesunąłem górny fragment by zrobić obrazek bardziej czytelnym)

Obrazek

Ponieważ oba gizmo były określone jako takie same, w obu ID rozmiar kratki jest ten sam. Jest to niezwykle istotne dla linii podziału blach, podzielonych logo czy też plam kolorów biegnących przez różne fragmenty bolidu.

Elementy bolidu które zawsze dodaje się do tekstury góry to wlot powietrza i zagłówek. Ponieważ zmapowałem je z górnego widoku, to w rzeczywistości polygony mniej lub bardziej ale będą leżały na sobie. To oznacza, że tekstura będzie wyglądała brzydko jeśli tego nie poprawimy.

Obrazek

Jest oczywiste, że te elementy bolidu, najlepiej wyglądać będą gdyby zostały umieszczone na teksturze 'przedniej'. Zaznacz problematyczny fragment przy pomocy myszki (jak wcześniej, wybieramy polygon i zaznaczamy). Wykonaj te same kroki co zawsze, weź jednak pod uwagę by zmienić orientacje gizmo dla tych elementów.

Gdy już dodasz Unwrap UVW zalecam być od razu przeniósł wlot powietrza poza obszar Unwrap UVW, tak jak na obrazku poniżej. Robię tak zawsze ponieważ wszystko co jest poza obszarem UVW posiada: 1- poprawne ID, 2- Poprawne zorientowanie.

Obrazek

Znów przekonwertuj obiekt do edytowalnych polygonów, dodać Unwrap UVW i pozwól by jedynie ID1 zostało wyświetlone w oknie UVW. W okolicach kokpitu chce oddzielić nos od osłon chłodnic:

Obrazek

Zaznaczyłem polygony, ale jeśli spróbuję je przesunąć, stanie się coś takiego:

Obrazek

By temu zapobiec, zanim zaczniesz przesuwać wejdź do opcji Tools -> Detach Edge Verts. Teraz możesz już przesuwać obiekty nie działając jednocześnie na pozostałe.

Dziel elementy dalej, rozstawiaj je w polu UVW, nie zmieniaj jednak ich skali.


*****Od teraz wszystkie obrazy jakie zobaczycie zostaną wykonane przy pomocy mojego FW30 który jest w pełni zmapowany*****

Ze względu na wartość jaką wybrałeś przy ustanawianiu gizmo, wszelkie obiekty które umieścisz będą łącznie mniejsze bądź zbyt duże względem wielkości okna UVW.

Obrazek

To przykład, jak wyglądają boczne i górne ID po prawej stronie obszaru UVW.

Obrazek

Teraz, gdy umieścisz tam i zaznaczysz jako widoczne wszystkie ID, zaznacz wszystkie ID (nie używaj kombinacji Ctrl+a) i użyj ikony którą zaznaczyłem w lewym górnym rogu:

Obrazek

Przesuń wszystko do górnego lewego rogu obszaru UVW

Obrazek

Przy użyciu tej samej opcji, przesuń swój kursor myszy do dolnego prawego rogu zaznaczenia. Wciśnij go i przeciągnij trzymając jednocześnie przycisk CTRL. Upewnij się że wykorzystałeś maksymalnie największy obszar UVW, bez opuszczania go.

Obrazek

A więc to tyle póki co. To dopiero początek, w przypadku zapotrzebowania i pytań, dorzucę więcej detali i wskazówek.


Koen Calley


PS:Tutorial może być rozpowszechniany, jednak wskazanym jest podanie jego autora, oraz ew. tłumacza gdy przesyłamy tutorial na polskie strony. Za granicą proszę posługiwać się pdf'em dostępnym na forum MMG.
Obrazek
Dopiero gdy stracimy wszystko stajemy się zdolni do wszystkiego. Prawie śmierć niczego nie zmienia, dopiero śmierć... zmienia wszystko.
Avatar użytkownika
hideto
 
Dołączył(a): Cz maja 03, 2007 18:15
Lokalizacja: Łódź


Powrót do rFactor

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość

cron