Opublikowano

Fundamenty grafiki komputerowej – modelowanie 3d

SPIS TREŚCI:

Grafika 3d zdominowała współczesne CGI. Dlatego modelowanie 3d to podstawowa umiejętność grafika, który chciałby związać się z branżą gier lub VFX. Tylko, co powinniśmy wiedzieć o modelowaniu? Na co zwracać uwagę? Jakie są techniki modelowania? Z czym musimy się mierzyć i wreszcie… czy trójkąty to zło wcielone?

W grafice 3d możemy wyróżnić: modelowanie, teksturowanie, animację i rendering. Dalej, pojawiają się wąskie zagadnienia związane z efektami cząsteczkowymi. W oparciu o cząsteczki możemy tworzyć symulację zjawisk naturalnych: chmury, ogień, dym, woda itd. Wiele programów 3d oddaje nam do dyspozycji własne rozszerzenia, które dodatkowo ułatwiają pracę z włosami, roślinnością, tkaninami… Przestrzeń wyboru jest ogromna – należy tylko znaleźć swoją niszę; a my zacznijmy od podstaw.

Gdzie „rodzą” się modele 3d?

Obiekty 3d mogą powstawać na drodze skanowania, jak i w procesie wytłaczania pojedynczych komponentów. Poza tym na rynku można znaleźć bogatą ofertę gotowych modeli 3d z licencjami na wykorzystanie w projektach komercyjnych. Biblioteki modeli to najszybsza droga do realizacji przedsięwzięcia biznesowego, szczególnie tam, gdzie czas i pieniądz, jest głównym wyznacznikiem powodzenia.

Alternatywą są także programy do generowania obiektów trójwymiarowych (przykł. Poser). Ich zasada działania jest prosta: tworzymy siatkę geometryczną wykorzystując różnego typu parametry, opcje i suwaki. Zmieniając parametry generatora modyfikujemy podstawową siatkę i tworzymy końcowy obiekt.

Dlaczego o tym piszę? No cóż… musimy być świadomi tego, że umiejętność modelowania, to absolutne minimum, wynika to „recyklingu modeli 3d” (sięganie pod gotowe lub wcześniej użyte obiekty). Ale nawet, jeśli nie będziemy tworzyć obiektów od zera do bohatera, to czekają nas inne scenariusze: przykładowo opracowanie siatek, które zostały utworzone w procesie skanowania lub optymalizacja siatki z myślą o druku 3d.

Odmienny sposób tworzenia obiektów związany jest z modelowaniem proceduralnym, o którym piszę w artykule: Fundamenty grafiki komputerowej – modelowanie proceduralne.

Od NURBSów do polygonów

Budulcem obiektów trójwymiarowych są przeważnie polygony, które usunęły w cień siatki typu NURBS – te drugie, opierają się na krzywych bezier. NURBSy nie są tak uniwersalne jak polygony, ale pozwalają szybko zbudować mechaniczne i organiczne formy. Pracując z NURBS’ami nie możemy zapominać o ich słabych stronach czyli: trudność pracy z detalami i teksturami.

Znajomość siatek NURBS nie jest konieczna, ale wskazana. Tego typu siatki są szeroko wspierane w programie Autodesk Maya. NURBSy mogą być wykorzystane do budowy podstawowej formy, która jest następnie konwertowana do siatki typu polygon. W ten sposób możemy bardzo szybko zbudować karoserię pojazdu lub jakąś organiczną formę.

W procesie modelowania często pomagają tekstury, które mogą być odpowiedzialne za detale na powierzchni obiektu. Odpowiednie tekstury mogą także zniekształcać cały obiekt lub dodawać do siatki nowe elementy. Z tego typu tekstur obficie korzystają silniki gier audiowizualnych.

Zrzut ekranowy z programu Autodesk Maya – modelowanie 3d należy rozpocząć od wyboru właściwej siatki
Dwa obiekty, ale zbudowane z różnych siatek. Na górze znajduje się siatka „polygon”, a na dole NURBS. Obydwie siatki złożone są z odmiennych komponentów. Po lewej znajduje się menu z opcjami wyświetlania komponentów. Jak widać siatki „polygon” oferują większą wybór (przy okazji zostały także wyświetlone trójkąty).

Modelowanie 3d i polygony

„Niestety, bardzo trudno odpowiedzieć na pytanie: czym jest… polygon?”. Najprościej: polygon to „ocieniowany” i widzialny element siatki, który składa się z minimum trzech wierzchołków połączonych trzema krawędziami. Po spełnieniu tych warunków program komputerowy może wyświetlić kolor w przestrzeni pomiędzy krawędziami (cieniowanie). W ten sposób możemy dostrzec, uchwycić i przesunąć polygon.

Dwa wierzchołki w przestrzeni dają jedną krawędź; trzy krawędzie pozwalają wygenerować polygon na bazie trójkąta; cztery krawędzie to oczywiście kwadrat, itd. Warto zapamiętać, że polygon może być zbudowany z dowolnej liczby krawędzi. Wierzchołki, krawędzie i polygony są często określane mianem komponentów obiektu geometrycznego (siatki NURBS dysponują odmiennymi komponentami, jednak po części zbliżonymi do polygonów).

Techniki modelowania

Sposobów na pracę z polygonami jest kilka. Najpopularniejsza metoda to „wytłaczanie”, czyli kopiowanie zaznaczonych komponentów. Możemy wytłaczać: wierzchołki krawędzie oraz całe polygony. Inna metoda modelowania to box modeling oparta na dzieleniu, zniekształcaniu i rozbudowie bryły geometrycznej. W pierwszej metodzie możemy zacząć pracę właściwie od pojedynczego wierzchołka; w drugiej możemy zacząć od całej bryły geometrycznej – sfera, prostopadłościan itd.

Zastosowanie polygonów

Popularność polygonów wynika także z innych czynników. Są one przyjazne dla nowoczesnych silników renderujących oraz silników gier komputerowych. Również animacja na bazie polygonów nie sprawia zbyt dużo problemów. Polygony są także budulcem w programach rzeźbiarskich typu ZBrush. I tutaj, możemy zwrócić uwagę na jeden poważny minus tych komponentów.

Aby obiekt 3d wiernie i szczegółowo oddawał detale na swojej powierzchni, należy zwiększyć jego liczbę polygonów. Podobnie robimy w przypadku grafiki 2d i obrazów rastrowych zwiększając liczbę pikseli na 1 cm. Niestety, zwiększanie liczby polygonów następuje z reguły globalnie. A to oznacza, że wszystkie polygony są dzielone na 4 mniejsze polygony. I tak: jeśli średni poziom detali wymagał użycia 1 mln polygonów, to kolejny poziom zwiększy tą liczbę do 4 mln, a następny do 16 mln – co dla większości maszyn będzie zabójcze.

Zrzut ekranowy z programu Blender – na obrazie znajduje się siatka geometryczna opisująca ludzką dłoń
Po lewej stronie możemy zauważyć, że liczba polygonów jest o wiele mniejsza niż po prawej, gdzie znajduje się więcej detali. Liczba komponentów zwiększana jest lokalnie, a nie globalnie.

Problem gęstości siatki

Istnieje wiele sposobów na to, aby zaradzić takim problemom. Na przykład, programy 3d pozwalają podzielić scenę na warstwy – osobno tło, animowane postacie, itd. Inna metoda, to przechowywanie składników sceny w kilku plikach, a następnie ich integracja. Jeszcze inna, to wykorzystanie tekstur, które dodają szczegóły podczas renderowania. Jednak zdolny modeler nie musi odwoływać się do takich metod – może za to zwiększyć gęstość siatki geometrycznej w tych obszarach, które tego wymagają.

Niektóre obiekty z powodu swojej konstrukcji same narzucają takie „lokalne” zagęszczanie siatki. Dobrym przykładem jest samochód. Karoserię możemy odwzorować za pomocą kilkuset wierzchołków, ale bieżnik opony wymaga ich o wiele więcej, niż cała karoseria. Na szczęście opona i karoseria to odrębne obiekty. Podział siatki odpowiedzialnej za oponę – nie wpłynie na liczbę komponentów karoserii. Detale bieżnika można także dodawać z wykorzystaniem odpowiedniej tekstury w procesie renderowania.

W przypadku obiektów organicznych – potwory, bestie, zwierzęta, postacie – nie jest to już takie proste. Takie modele to z reguły jedna i ciągła siatka. Zwiększając liczbę wierzchołków na twarzy postaci dodajemy także komponenty w pozostałych obszarach obiektu. Aby tego uniknąć musimy umiejętnie pracować z siatką i kontrolować jej topologię – jest to prawdziwa szkoła życia każdego modelera.

Podsumowanie

Modelowanie to dopiero początek przygody z grafiką 3d. Zagadnień w tym przedmiocie jest bardzo dużo. Jeśli jest to Twój pierwszy krok w stronę 3d, to zachęcam do lektury szkolenia: Blender 2.5: od interfejsu do modelowania.

Zagadnienie topologii także zostało poruszone na stronach Keylight w szkoleniu wideo: Topologia w modelowaniu organicznym oraz Topologia i modelowanie kobiecej głowy.

Jeśli nie jesteś pewien, który program do grafiki 3d powinieneś wybrać, jako swoją pierwszą aplikację, to polecam lekturę artykułu: Jaki program 3d wybrać do nauki modelowania.

Opublikowano