Witam wszystkich czytelników w kolejnym artykule z serii Proces powstawania fotomanipulacji krok po kroku. Poniższy artykuł stanowi część drugą serii i opowiada proces modelowania broni, którą będzie wykorzystywać nasza postać. Jeśli jesteście ciekawi pierwszej części artykułu – zapraszam tutaj. A teraz przejdźmy modelowania…
Modelowanie
H&K USP Match – Proces modelowania
Mając referencje oraz ogólny zarys blockoutu przystąpiłem do modelowania. Wszystkie elementy wykonałem metodą poly/subdivision modelingu wychodząc od prostych brył geometrycznych. I tak trzy elementy powstały na bazie cylindra, reszta zaś to przekształcony prostopadłościan (Rysunek 1).
Podczas tworzenia poszczególnych elementów wykorzystywałem przede wszystkim takie narzędzia jak: extrude, chamfer, loop, ring, inset, swift loop (graphite tools menu – edge), cut, create (polygon), bridge. Dodatkowo doszło dużo ręcznego ustawiania wierzchołków oraz krawędzi, a także wspierałem się takimi modyfikatorami jak: turbo smooth oraz symmetry.
Poniżej krótkie zestawienie najczęściej wykorzystanych funkcji programu wraz z ich zastosowaniem:
- Extrude (Rysunek 2) – wytłaczanie zaznaczonych poligonów
- Chamfer (Rysunek 2) – ścinanie krawędzi. Przeważnie używam wtedy kiedy wiem, że dany model nie będzie „wygładzany” turbo/mesh smoothem i sam manualnie chcę nadać skosy na krawędziach
- Inset Polygon (Rysunek 2) – umieszcza nowy polygon wewnątrz wcześniej wybranego/wybranych
- Edge Loop (Rysunek 3) – szybkie zaznaczenie wszystkich krawędzi, które ułożone są na wspólnej „pętli”
- Ring (Rysunek 3) – szybkie zaznaczenie wszystkich „równoległych” krawędzi
- Swift Loop (graphite modeling tools) (Rysunek 4) – bardzo przydatne narzędzie przy subdivision modelingu. Pozwala na dodawanie w bardzo szybki sposób „pętli” krawędzi.
- Cut (Rysunek 5) – tworzy nowe krawędzie poprzez wskazanie miejsc cięcia/umiejscowienia nowych wierzchołków
- Create Polygon (Rysunek 5) – narzędzie służy do tworzenia nowych płaszczyzn poprzez wskazanie wierzchołków między, którymi ma powstać polygon
- Bridge (Rysunek 5) – jak sama nazwa wskazuje tworzy „pomost” między dwoma wskazanymi polygonami, które należą do tego samego obiektu.
Porada nr 4
Warto pamiętać o tym, że narzędzia Bridge można używać nie tylko do tworzenia „pomostów”, ale również do konstruowania „tuneli”. Wystarczy zaznaczyć polygony, które znajdują się po różnych stronach jednego, tego samego elementu. Tak np. stworzyłem lufę pistoletu, zaznaczając dwie powierzchnie na końcu i początku cylindra.
- Turbo Smooth (Rysunek 6) – wygładzanie obiektu zależnie od ustawionych iteracji oraz rozmieszczenia krawędzi. Ważny modyfikator podczas tworzenia obiektów metodą subdivision modelingu z wykorzystaniem support edge’y (chociażby za pomocą wcześniej wspomnianego Swift Loopa). Jeśli docelowo mamy stworzyć obiekt o obłych, organicznych kształtach, to nie obejdzie się bez tego modyfikatora.
- Symmetry (Rysunek 7) – modyfikator tworzy symetryczne odbicie wybranego obiektu. Bardzo przydatna funkcja, która pozwala zaoszczędzić bardzo dużą ilość czasu podczas modelowania. Tak więc na początku warto sobie rozplanować workflow tak, aby później stworzyć jak największą ilość odbić, a tym samym przyspieszyć prace nad projektem.
Za pomocą wyżej wymienionych funkcji stworzyłem bazowy model pistoletu wzorowany na materiałach referencyjnych, które przedstawiłem w poprzedniej części. Jak można zauważyć na załączonej grafice (Rysunek 8) na wykonanym modelu brakuje niektórych detali – nierówności, „obicia” na uchwycie, zagłębień po bokach. Szczegóły te dodam potem podczas przygotowywania tekstur. Niektóre (o ile zajdzie taka potrzeba) można również potem domalować – pamiętając o tym, że najważniejszy jest efekt końcowy, a nie męczenie się z niektórymi elementami bez jakiejkolwiek potrzeby.
Teksturowanie
H&K USP Match – Rozkładanie siatki modelu
Kupując rekwizyty do sesji zdjęciowej (jak np. modele broni) dostaje się nowy towar – pozbawiony rys, uszkodzeń, zadrapań i innych uszczerbków. Na stocku, który wybrałem również mamy do czynienia z taką sytuacją. Broń wydaje się zadbana, nowa. Do tego troszkę zabawkowa. Jako, że postać Lary Croft w grach i filmach przemierza najróżniejsze lokacje, często w bardzo trudnych warunkach, to logicznym wydaje się, aby te pistolety trochę „podniszczyć”. W związku z tym musiałem przygotować odpowiednią teksturę, a co za tym idzie wcześniej rozłożyć odpowiednio siatkę wykonanego modelu 3d.
W celu stworzenia szablonu tekstury użyłem modyfikatora Unwrap UVW. Oczywiście możliwe jest szybkie i automatyczne rozłożenie siatki poprzez użycie funkcji Open UVW Editor -> Mapping -> Flatten Mapping, ale siatka taka jest zazwyczaj kiepsko zoptymalizowana przy bardziej skomplikowanych modelach. Tak więc konieczne było ręczne umiejscowienie szwów (seams).
Teraz typowy scenariusz przy wszystkich elementach wyglądał następująco:
- manualne zaznaczenie krawędzi + loop
- pelt map / quick planar map (zależnie od tego jak dany podział wyglądał)
- w edytorze Tools -> Relax -> w 99% z opcją Relax by Face Angles
- następnie gdy już cały element był zmapowany -> zaznaczenie wszystkich podziałów i przeskalowanie ich za pomocą Rescale Elements
- poukładanie elementów tak aby zabierały jak najmniej miejsca na szablonie
Po rozłożeniu wszystkich elementów, a następnie scaleniu ich w całość (w sumie to w dwa większe elementy, oddzielnie dla czarnych partii, a oddzielnie dla tych jasnych – na refce widać o co chodzi) powstało coś takiego (Rysunek 9), czyli całkiem solidny wstęp pod przygotowanie właściwej tekstury.
Porada nr 5
Ktoś może zapytać jak teksturować obiekty, na których użyto modyfikatora Turbo Smooth? – a z takimi miałem do czynienia w swoim projekcie. Rozwiązaniem jest proste. Siatkę rozkładamy na iteracji mniejszą o jeden. Tak więc np. jeśli mamy wartość „2”, to zmniejszamy na „1” konwertujemy obiekt do editable poly, rozkładamy siatkę i potem znowu nakładamy turbo smooth z wartością „1”. Próba nałożenia większej wartości może spowodować niepożądane rozciągnięcie siatki, tak więc radzę trzymać się tej zasady.
Teksturowanie – nDo2
Quixel nDo2 to genialny program, który powoli staje się standardem w branży (o ile już nie jest – bo z tego co wiem, to bardzo dużo firm tworzących gry oraz freelencerów, którzy trudnią się teksturowaniem, z niego korzysta). Pozwala na tworzenie normal map z poziomu Photoshopa za pomocą konwertowania: ścieżek, height map w skali szarości, shape’ów oraz co jest bardzo rewolucyjne poprzez malowanie w Photoshopie przy użyciu dowolnego pędzla. Oprócz tego program posiada również możliwość konwersji stworzonej normal mapy np. na mapkę Ambient Occlusion czy Cavity Map. Czyli podsumowując pozycja obowiązkowa dla każdego kto ma styczność z tworzeniem tekstur.
W moim przypadku użyłem programu do stworzenia obić (perforacji – nie wiem czy to się tak fachowo nazywa) na rączce, wgłębienia na przednim elemencie oraz innych mniejszych szczegółów (napisy, itd.).
O samej obsłudze programu nie będę się rozpisywać, bo musiałbym stworzyć osobną serię artykułów na ten temat, ale ogólnie polecam wszystkim zainteresowanym przejrzenie strony producenta oraz zakup tutoriala z 3dmotive za jedyne 29$. Sam program też jest bardzo tani (koszt licencji zawiera się w przedziale 59$-99$).
Tak więc po wszystkich zabiegach powstała następująca normal mapa (Rysunek 10):
Program nDo2 posłużył mi jeszcze do jednego zadania, a mianowicie do zmiksowania wyżej pokazanej normal mapy z drugą (Rysunek 11), którą wypaliłem za pomocą ZBrusha (oczywiście można było ją też przygotować w całej masie innych aplikacji jak np. xNormal, ale akurat ja użyłem do tego Z-tki). Tutaj nie jestem do końca pewien poprawności moich działań, ale jako, że późniejszy efekt był właściwy, to nie zawracałem sobie głowy jakimiś drobnymi niuansami, które w obecnym projekcie nie wpływały na rezultat, który chciałem osiągnąć.
Dodatkowo wypaliłem normal mapę dla drugiego elementu (Rysunek 12).
Teksturowanie – dDo
Drugi program firmy Quixel, który pojawił się bardzo niedawno i obecnie jest dostępny jako beta do darmowego użytku (do końca stycznia). Tak samo jak nDo zrewolucjonizuje pewnie sposób tworzenia tekstur i świetnie uzupełnia poprzednika. Program jest z dnia na dzień udoskonalany i non stop pojawiają się nowe rzeczy, tak więc jeśli ktoś chciałby poznać jakieś szczegóły na jego temat, to najlepiej przejrzeć stronę quixel.se/ddo.
Plikami bazowymi dla pracy w programie były dla mnie dwie normal mapy, które wcześniej przedstawiłem. Następnie używając zmodyfikowanych presetów wygenerowałem w programie następujące mapki (diffuse, specular, gloss) (Rysunki. 13 i 14).
Renderowanie
H&K USP Match – Próbny rendering – bazowe shadery
Mając gotowe tekstury wyrenderowałem model z próbnymi, bazowymi materiałami (Rysunek 15).
Próbny rendering – shadery + tekstury
Efekt był dla mnie zadowalający i postanowiłem następnie przypisać shaderom wcześniej stworzone tekstury (Rysunek 16).
Ps. Jeśli ktoś z czytelników chciałby zapytać o jakąś konkretną rzecz, która pojawiła się w artykule, czy też ma się pojawić w kolejnych odsłonach, to proszę pisać śmiało. Postaram się na wszystko odpowiedzieć i zawrzeć konkretne pojęcia w następnych wpisach.