Przygotowanie grafiki 3D do gier komputerowych Rafał Piórkowski Grafika Komputerowa i Wizualizacja Plan wykładu 1. 2. 3. 4. 5. 6. 7. 8. 9. Ogólne wiadomości Modelowanie high poly Rzeźbienie Modelowanie low poly Model postaci Tekstury – tradycyjne podejście oraz PBR Tekstury proceduralne Teksturowanie modelu Export i import plików Przygotowanie grafiki 3D do gier 01/35 Mesh Mesh – zbiór wierzchołków, krawędzi oraz polygonów, które definiują kształt obiektu w grafice komputerowej. Ogólne wiadomości 02/35 Topologia Topologia – sposób w jaki łączą się ze sobą polygony i krawędzie, tworząc powierzchnię mesha. Ogólne wiadomości 03/35 Subdivide Przed wykonaniem Subdivide Po wykonaniu Subdivide Subdivide – operacja polegająca na podziale polygonów mesha na mniejsze części z jednoczesnym ich zaokrąglaniem na krawędziach obiektu (inne nazwy: Turbosmooth, Meshsmooth). Ogólne wiadomości 04/35 Podpory (ang. Support edges) Podpory zaznaczone na czerwono Subdivide na modelu z podporami Podpory (ang. Support edges) – dodatkowe pętle znajdujące się przy krawędziach obiektu. Powodują, że po wykonaniu operacji subdivide, dana krawędź będzie ostrzejsza. Ogólne wiadomości 05/35 Materiał i tekstura Materiał - określa sposób interakcji światła z powierzchnią modelu Właściwości materiału ustawia się używając różnego rodzaju tekstur – czyli obrazów nakładanych na model. Ogólne wiadomości 06/35 Wektory normalne Wektory normalne – znajdują się w każdym wierzchołku modelu. Wyznaczają, w którą stronę skierowany jest polygon. Manipulowanie nimi pozwala na stworzenie lepiej wyglądajcych modeli bez dodawania dodatkowej geometrii. Ogólne wiadomości 07/35 Smoothing groups Oba meshe są identycznie zbudowane Połowa polygonów powyższegomesha ma tę samą smoothing groupę Jedną z metod manipulacji wektorami normalnymi jest używanie smoothing groups. Polygony mające tę samą smmothing groupę są wygładzane między sobą. Ogólne wiadomości 08/35 Normal mapping Mesh bez normal mapy Mesh z normal mapą (widoczna w lewym dolnym rogu) Normal mapa zawiera informację o tym jak obrócić wektory normale, aby otrzymać efekt wklęsłości/wypukłości powierzchni. Należy jednak pamiętać, że normal mapping jest jedynie sztuczką – nie zmienia on geometrii modelu. Ogólne wiadomości 09/35 Model high poly Model high poly z siatką Model high poly bez siatki Model high poly - model składający się z ogromnej liczby polygonów, nie nadający się do bezpośredniego użycia w grze, używany jako początkowy etap przygotowania finalnego modelu. Modelowanie high poly 10/35 Przygotowanie modelu high poly Przybliżony kształt obiektu Dodanie podpór Operacja Subdivide Modelowanie high poly - składa się z 3 etapów: stworzenia przybliżonego (kanciastego) modelu, dodania do niego podpór, wykonania operacji Subdivide (zaokąglenie krawędzi). Modelowanie high poly 11/35 Przygotowanie modelu do rzeźbienia Wstawianie dodatkowych krawędzi Model przygotowany do rzeźbienia Przygotowanie modelu do rzeźbienia – polega na stworzeniu mesha składającego się z polygonów w kształcie kwadratów o zbliżonych do siebie rozmiarach – jest to tak zwana rozdzielczość mesha. Rzeźbienie 12/35 Proces rzeźbienia Przesunięcie pędzla po modelu powoduje przesunięcie grup wierzchołków w głąb modelu Proces rzeźbienia – polega na przesuwaniu grup wierzchołków przy użyciu tzw. pędzli. Rzeźbienie 13/35 Model low poly Model low poly Model high poly po rzeźbieniu Model low poly – model o możliwie jak najmniejszej liczbie trójkątów, oddający w przybliżeniu kształt modelu high poly. Model, który docelowo ma trafić do gry. Modelowanie low poly 14/35 Retopologia Model przed operacją Subdivide Model low poly – usunięte podpory, mniejsza liczba segmentów Retopologia – operacja polegająca na przebudowaniu modelu w taki sposób, aby zredukować liczbę trójkątów (np. poprzez usuwanie krawędzi i łączenie wierzchołków). Modelowanie low poly 15/35 UV mapping modelu low poly UV mapping – polega na przeniesieniu modelu 3D na płaszczyznę dwuwymiarową. Etap niezbędny przed przystąpieniem do teksturowania. Modelowanie low poly 16/35 Wypiekanie normal mapy High poly + siatka Low poly + siatka High poly Low poly + po rzeźbieniu normal mapa Normal mapa – tekstura umożliwiająca przeniesienie detalu z modelu high poly na model low poly. Tworzenie jej w oparciu o model high poly nazywane jest wypiekaniem (ang. Baking). Modelowanie low poly 17/35 Kolejne etapy tworzenia postaci 3. 1. 4. 2. Modelowanie postaci – polega na stopniowym nadawaniu kształtu coraz gęstszemu meshowi. Modelowanie postaci 18/35 Kolejne etapy tworzenia postaci Jeżeli model ma być później animowany konieczne jest utworzenie mesha o odpowiedniej toplogii. Modelowanie postaci 19/35 Kolejne etapy tworzenia postaci Inne podejście do retopologii polega na użyciu narzędzi umożliwiających tworzenie nowego mesha na powierzchni poprzedniego. Modelowanie postaci 20/35 Kolejne etapy tworzenia postaci W przypadku modelu twarzy konieczne jest utworzenie pętli krawędzi wokół oczu, ust, uszu, na szyi. Modelowanie postaci 21/35 Kolejne etapy tworzenia postaci Ponadto dodatkowe pętle należy umieścić w zgięciach kolan, łokci, ramion – ogólnie w tych miejscach, w których prawdziwy człowiek ma stawy. Modelowanie postaci 22/35 Tradycyjne podejście W tradycyjnym podejściu wyróżnia się dwie tekstury: diffuse – czyli kolor powierzchni mesha oraz specular – służy do określania rozbłysków na meshu. Jaśniejsze obszary na mapie specular dają mocniejsze odbicia światła na meshu. Tekstury 23/35 Physically Based Rendering Physically Based Rendering – sposób renderingu, w którym wykorzystywane są materiały stworzone na podstawie zmierzonych właściwości realnych materiałów. Materiały PBR są znacznie bardziej zbliżone wyglądem do materiałów spotykanych w realnym świecie niż w przypadku dotychczas stosowanych, tradycyjnych technik. Tekstury 24/35 PBR - Albedo Tekstura Albedo – zawiera ona kolory materiału, może być utożsamiana z teksturą diffuse. Tekstury 25/35 PBR - Metallic Tekstura Metallic – określa czy materiał jest metalem (biały kolor na teksturze) czy dielektrykiem (czarny kolor na teksturze). Tekstury 26/35 PBR - Roughness Tekstura Roughness – określa czy materiał jest błyszczący (czarny kolor na teksturze) czy matowy (biały kolor na teksturze). Tekstury 27/35 PBR kontra tradycyjne podejście Największe różnice widoczne na lunecie oraz w miejscach zadrapań i zabrudzeń. Tekstury 28/35 Tekstury proceduralne Tekstury proceduralne – są to obrazy powstałe na skutek zastosowania procedury matematycznej, która na bazie podanej liczby (ziarna) tworzy na obrazie odpowiednie kształty. Tekstury proceduralne 29/35 Tekstury proceduralne Umiejętne połączenie dużej liczby tekstur proceduralnych może dawać bardzo złożone wyniki. Tekstury proceduralne 30/35 Etapy tworzenia tekstury modelu 1. Stworzenie bazowego materiału – nadanie koloru, ustalenie czy jest to metal czy dielektryk, wybranie jak bardzo jest chropowaty. Teksturowanie modelu 31/35 Etapy tworzenia tekstury modelu 2. Nadanie faktury materiałowi – w powyższym przypadku są to nierówności powierzchni. Teksturowanie modelu 32/35 Etapy tworzenia tekstury modelu 3. Dodanie za pomocą generatorów różnego rodzaju zadrapań, zabrudzeń, plam rdzy itp. Teksturowanie modelu 33/35 Etapy tworzenia tekstury modelu 4. Dodanie unikalnych elementów np. napisów. Teksturowanie modelu 34/35 Popularne formaty plików W celu przenoszenia meshy między różnymi programami konieczne jest ich eksportowanie i importowanie do typowo używanych formatów plików. Dwa najbardziej znane i używane to .obj – używany najczęściej do eksportu wyłącznie geometrii oraz .fbx – będący kontenerem tzn. można poza geometrią umieścić w nim światła, kamery, tekstury, animacje. Export i import modeli 35/35 Dziękuję za uwagę Grafika Komputerowa i Wizualizacja