Modelowanie w Rhino i Blenderze
Transkrypt
Modelowanie w Rhino i Blenderze
ROZDZIAŁ II Modelowanie 2.1. Wprowadzenie Niniejszy rozdział poświęcony jest zagadnieniom związanym z modelowaniem obiektów 3D. Zostanie w nim przeprowadzony przegląd oraz analiza opcji umożliwiających modelowanie dostępnych w programach Rhinoceros [13] i Blender ze względu na ich praktyczne wykorzystanie w zajęciach uczelnianych. Skoncentruję się na dwóch typach. Pierwszy to modelowanie obiektów przy wykorzystaniu techniki Nurbs [14]. Drugi natomiast to powierzchnie Subdivision Surface (SubD Surface) [15]. Obie techniki mają zarówno zalety, jak i wady. Modelowanie techniką Nurbs niewątpliwie ma ogromne zastosowanie wśród inżynierów ze względu na możliwość dokładnego odwzorowania krzywizny kształtu modelowanego obiektu. Z drugiej strony SubD stosowane są bardziej powszechnie w zakresie tworzenia obiektów na potrzeby branży filmoworeklamowej. Niewątpliwą zaletą SubD jest swoboda podczas modelowania. Rozpoczniemy od stworzenia obiektu klowna w programie Rhinoceros wykorzystując technikę Nurbs. 2.2. Modelowanie obiektu metodą NURBS W niniejszym rozdziale opisane zostanie modelowanie obiektu 3D z wykorzystaniem krzywych typu Nurbs. Analizie poddane zostaną wszystkie istotne opcje związane z modelowaniem techniką Nurbs, które umożliwiają tworzenie obiektu w programie Rhinoceros. Program ten, jako jeden z najbardziej zaawansowanych modelerów Nurbs posiada spektrum opcji umożliwiających zaawansowane modyfikacje i tworzenie obiektów 3D. Do kilku z nich możemy zaliczyć generowanie obiektu wzdłuż ścieżki, tworzenie obiektu na podstawie krzywych odzwierciedlających krzywiznę bryły, wycinanie, kontrolowanie kształtu modelu przy wykorzystaniu punktów kontrolnych. To zaledwie kilka przedstawionych możliwości, aczkolwiek są to bardzo istotne opcje, bez których modelowanie byłoby niemożliwe. Posłużmy się definicją Nurbs w celu przybliżenia tego zagadnienia. Krzywa B-sklejana: - Krzywa B-sklejana (B-spline) to taka krzywa, która składa się z kawałków krzywych wielomianowych (krzywych Beziera). - do zdefiniowania krzywej B-sklejanej potrzebny jest wielobok kontrolny i stopień krzywej - krzywa stopnia k zdefiniowana wielobokiem o n+1 wierzchołkach składa się z (n-k+1) segmentów - krzywa ma ciągłość rzędu (k-1) z wyjątkiem wielokrotnych węzłów wewnętrznych - przesunięcie wierzchołka wieloboku wpływa na kształt krzywej - Krzywa jest wypukła, jeżeli wielobok który ją definiuje jest wypukły - Aby przesunąć, przeskalować lub obrócić krzywą, należy również przesunąć, przeskalować lub obrócić wielobok, na którym jest opisana Wszystkie krzywe na obrazie zdefiniowane są tym samym wielobokiem. Różnią się stopniem. Krzywa jest: a) 1 stopnia; b) 2 stopnia; c) 3 stopnia; d) 4 stopnia; e) 5 stopnia; f) 6 stopnia Różne klasy ciągłości w łączeniu krzywych Beziera 3-go stopnia. G0 (=C0) – wieloboki mają tylko punkt wspólny G1 – boki wielokąta (czerwony i zielony) leżą na wspólnej prostej, lecz ich długości nie są równe C1 – oba boki leżą na tej samej prostej i są tej samej długosci Krzywa Nurbs: - Rational (niejednostajny) oznacza, że węzły mogą być rozmieszczone dowolnie. Poprzez modyfikację węzłów można zmienić kształt krzywej oraz zmniejszyć jej ciągłość. - Non Uniform oznacza, że punktom kontrolnym można przypisać tzw. wagi. Wartość wagi wybranego punktu kontrolnego wpływa na kształt krzywej, który może być modyfikowany bez konieczności zmiany położenia wierzchołka (punktu kontrolnego). Na obrazku powyżej czarnymi liniami został zaznaczony wielobok tworzący krzywą. Leżące na wieloboku kwadraty to punkty kontrolne, natomiast czarne kółka na krzywej to węzły. Na kształt krzywej Nurbs wpływają punkty kontrolne, węzły, wagi punktów kontrolnych oraz stopień wielomianów. Jest typem krzywej, który wykorzystywany jest przez inżynierów ze względu na wygodę w generowaniu obiektów. Praktyczność w korzystaniu z Nurbsów lub krzywych b-sklejanych zapewniają punkty kontrolne, dzięki którym możemy wpływać na kształt krzywej. 2.3. Rhinoceros Tematem tego przykładu będzie wymodelowanie przestrzennego modelu głowy klowna. Celowo posłużę się tutaj modelem organicznym. Modelowanie stanie się jeszcze bardziej wyrafinowane ze względu na stopień skomplikowania obiektu oraz umożliwi analizę wybranych opcji Rhinoceros'a. Przystępuję do tworzenia krzywej, która posłuży do wymodelowania głowy. Ważne jest to, aby stworzona krzywa w miarę możliwości wiernie przypominała kształt profilu głowy, którą mamy zamiar wymodelować. Niezbędna jest tutaj modyfikacja pozycji punktów kontrolnych w celu uzyskania jak najlepiej wyglądającego zarysu głowy. Następnie przystępuję do stworzenia kolejnych krzywych. Kopiuję pierwszą krzywą i przesuwamy punkty kontrolne każdej z nich tak, aby uzyskała pożądany kształt. W ten sposób uzyskuję kolejne przekroje naszej głowy, które mogę wykorzystać do zbudowania powierzchni opcją loft, czyli metodą rozpinania powierzchni na przekrojach. Po stworzeniu bryły głowy i modyfikacji pozycji punktów kontrolnych można przystąpić do formowania otworów na oczy i rogi. Wykorzystuję do tego krzywą, którą ”uwypuklam” korzystając z opcji extrude (wyciąganie), a następnie wycinam opcją trim otwór w opracowywanej głowie. Opcja project umożliwia projekcję krzywej na powierzchnię obiektu 3D. Stworzona krzywa po użyciu opcji project dopasowuje się swoim kształtem do krzywizny powierzchni, na jaką jest rzutowana. W zaawansowanym modelowaniu opcja project jest wykorzystywana na szeroką skalę. Jest ona niezastąpiona przy modelowaniu z wykorzystaniem krzywych typu Nurbs. Korzystając z opcji loft tworzę zęby wraz z kłami, przy czym kły powstają poprzez przejście kształtu okrągłego w punkt. Następnie przesuwam punkty tak, aby bryła przypominała kieł. Wykonanie nosa klowna sprowadza się do skorzystania z gotowej bryły, jaką jest sfera. Tworząc dolną powiekę korzystam podobnie jak w pozostałych przypadkach z opcji loft. Okulary (binokular) są podstawowymi bryłami, które Rhinoceros oferuje jako pakiet gotowych brył. Są nimi torus i cylinder. Do połączenia rogu z głową wykorzystałem metodę blend. Łączy ona dwie wybrane krzywe dwóch wybranych obiektów (głowy oraz rogu) i na tej podstawie tworzy powierzchnię. Powierzchnia ta, jako trzeci obiekt jest modelem symulującym gładkie przejście pomiędzy krzywymi dwóch powierzchni - głowy i rogu. Teraz zajmę się powierzchnią łączącą głowę z rogiem. Wygenerowanie rogu sprowadza się do analogicznej techniki, przy pomocy której został wymodelowany kieł. Tworzę przekrój, który jest okręgiem a następnie łączymy go metodą loft z punktem. Następnie przystępuję do modyfikacji pozycji punktów kontrolnych. Jeżeli obiekt posiada niewystarczającą liczbę punktów kontrolnych w celu modyfikacji kształtu można dodać tzw. knot'y (punkty kontrolne), które definiują kolejne przekroje modelu na bazie już istniejącego obiektu. Upraszczając, modyfikują obiekt tnąc go na większą liczbę podziałów. Przekroje rogu to okrąg i punkt. Ze wstążką przyczepioną do czapeczki klowna postępuję następująco: tworzę path ścieżkę, a następnie przekrój, który przesuwając się po ścieżce przeistacza się w bryłę. Ilustracja powyżej przedstawia gotowy model. Poniżej widać inne rzuty obiektu. Rhinoceros jest programem umożliwiającym modelowanie zaawansowanych modeli techniką Nurbs. Niemniej jednak technika ta jest wykorzystywana głównie przez inżynierów, co świadczy o tym, iż znakomicie odnajduje się w zakresie potrzeb i wymagań technicznych. Niestety znacznie mniej popularna i używana jest przez artystów-grafików. SubD pozwala na znacznie swobodniejsze modelowanie. W przypadku SubD nie jest konieczne wycinanie otworów w powierzchni, aby móc ją połączyć z inną. SubD pozwala na extrude (wytłaczanie) wybranych polygonów zgodnie z kierunkiem wektora normalnego [18] powierzchni w danym punkcie. Takich operacji można dokonać dowolną ilość razy. Inne programy, takie jak Maya czy Softimage również dysponują krzywymi typu Nurbs. Z praktycznego punktu widzenia możliwości modyfikacji w zakresie krzywych Nurbs, które oferuje Rhinoceros nie różnią się od tych w Softimage'u, 3ds Maxie czy Mai. Te cztery programy są jedynymi profesjonalnymi aplikacjami na rynku w zakresie oferowanych opcji związanych z techniką modelowania Nurbs. Rhinoceros jako aplikacja z założenia przeznaczona do modelowania znakomicie spełniła wszystkie postawione na wstępie przez programistów wymagania. A są nimi: wygoda pracy, dostępność zaawansowanych opcji do modelowania, narzędzia umożliwiające poruszanie się w zakresie płynnej modyfikacji obiektu (punkty kontrolne, możliwość dodawania kolejnych przekrojów itd.), profesjonalny interfejs. Plik „Klown.3dm” zawierający scenę 3d z aplikacji Rhinoceros znajduje się w katalogu Załączniki/Modelowanie. 2.4. Wprowadzenie do Blendera Blender, który już został przedstawiony w Rozdziale I punkt 1.5 jest programem 3D znakomicie sprawdzającym się w rozmaitych nieprofesjonalnych i niekomercyjnych produkcjach, takich jak: generowanie grafiki na potrzeby internetu, tworzenie prostych wizualizacji, banery itd. Blender jest całkowicie zintegrowanym programem pozwalającym na stosunkowo zaawansowane modelowanie, animację i rendering. Jest znakomitym rozwiązaniem dla osób, które chcą poznać tajniki grafiki 3D w programie, który można łatwo, szybko i za darmo ściągnąć z Internetu. Jego niewątpliwie dużą zaletą jest łatwość dystrybucji, czyli dostępność. Wynika to z tego, że plik instalacyjny zajmuje zaledwie kilka megabajtów. Jest to znakomity sposób na szybką i skuteczną dystrybucję programu. Biblioteka OpenGL została w pełni zaimplementowana w Blenderze. Pozwala ona na dowolne dopasowania interfejsu pod indywidualne preferencje użytkownika. Takie rozwiązanie pozwala na dowolne skonfigurowanie ilości i wielkości okien edycyjnych programu, czy też zmianę liczby ikon na głównym pasku narzędziowym. Blender jest w pełni modyfikowalny w zakresie zmiany kodu źródłowego. Można swobodnie dopasować go pod własne potrzeby. Fakt, że ponad 250 tysięcy osób korzysta z możliwości Blendera świadczy o tym, że jest to niewątpliwy sukces dystrybucyjny. Niestety producenci Blendera nie oferują supportu, co jest w pełni zrozumiałe ze uwagi na to, że jest to program typu freeware. Z tego względu powstaje niewiele komercyjnych produkcji przy użyciu Blendera. W tym rozdziale przedstawiona zostanie analiza i przegląd możliwości Blendera. Posiada on krzywe typu Nurbs, lecz na dużo niższym stopniu zaawansowania niż Rhinoceros. Dlatego właściwym wyborem w zakresie techniki Nurbs był Rhinoceros ze względu na możliwości, lecz w zakresie animacji, renderingu oraz modelowania typu SubD wybrać należy Blendera. Program ten przede wszystkim jest darmową aplikacją, co czyni ją znakomitym wyborem ze względu na swobodę prowadzenia zajęć na uczelni w zakresie grafiki 3D. Oferuje ona wszystkie opcje potrzebne do celów edukacyjnych. Dlatego też Blender będzie programem przeanalizowanym w zakresie pracy dyplomowej. Spełnienie takiego założenia wymaga dokładnego i szczegółowego opisu interfejsu i wszystkich podstawowych opcji programu. Będzie to bazowa wiedza do dalszej nauki tego programu w zakresie animacji i renderingu. Przystąpię teraz do omówienia podstaw związanych z Blenderem. Zacznę od interfejsu. Interfejs Blendera wykorzystuje w pełni możliwości trzy-przyciskowej myszki. W przypadku, gdy mysz wyposażona jest tylko w dwa przyciski, istnieje możliwość emulacji trzeciego przycisku. Kółeczko w myszce (zazwyczaj służące do przewijania stron w Internecie) również może być wykorzystane podczas pracy, lecz w razie potrzeby istnieje również skrót na klawiaturze zastępujący tą funkcję. Wygląd Blendera zaraz po pierwszym uruchomieniu Po pierwszym uruchomieniu Blendera widać ekran podzielony na trzy segmenty: 1 – główne menu na samej górze, 2 – duże okno 3D (symulujące przestrzeń trójwymiarową) oraz 3 – okno z różnymi opcjami odpowiadającymi za ustawienia renderingu, formatu obrazka itd. Przesuwając myszkę nad wybranymi oknami można zauważyć, że obszar nad którym znajduje się obecnie kursor staje się jaśniejszy (podświetla się). Bardzo łatwo można podzielić i ustawić okna Blendera według własnych potrzeb. Aby tego dokonać, należy najechać kursorem myszki na miejsce (linię) łączące dwa okna, kliknąć lewym przyciskiem myszki i wybrać opcję Split. Następnie odpowiednio ruszając kreską podziałową ustalić miejsce przecięcia się dwóch “nowych” okien. Podział okien Blendera przy wykorzystaniu opcji Split Różne parametry ustawienia okna W prawym górnym rogu na głównym pasku menu znajduje się ikona, dzięki której można dokonywać zmian typu okna: - 3D View – możliwość oglądania sceny 3D pod każdym kątem z każdej odległości. Istnieje możliwość zdefiniowania kilku okien i uaktywnienia w każdym z nich opcji 3D View, co pozwala na dowolne oglądanie obiektu z dowolnego kąta; - Buttons Window – zawiera większość narzędzi do edycji obiektów, powierzchni, świateł, tekstur itd.; - Users preferences – to okno zazwyczaj jest ukryte. Uruchomione daje możliwość włączania siatki, przyciągania do siatki, ustawienia liczby undo, czcionek, auto save'ów, parametrów OpenGl'a itd.; - Ipo Curve Editor – edytor funkcji ruchu obiektu w zależności od czasu. Jest to opcja, której nie posiada Rhinoceros (Bongo [18]). Jest to bardzo ważna i przydatna funkcja, często wykorzystywana w trakcie animacji obiektów. Przy jej pomocy można z dokładnością co do klatki zmieniać parametry animacyjne obiektu na bazie istniejącej krzywej ruchu (funkcja pokazująca wartości zmian parametrów obiektu, np. przemieszczenia w czasie); - UV/Image Editor – okno, które jest odniesieniem pomiędzy modelem a teksturą przy nakładaniu jej na obiekt; - Audio Timeline – edytor dźwięku. Można wczytać plik muzyczny (.wav) i dowolnie umieścić go w czasie. Jest to opcja, bez której nie byłoby możliwości ustawienia ruchu obiektu pod muzykę czy efekty dźwiękowe; - Text Editor – do tworzenia i edycji tekstu. Można użyć np. funkcji extrude i płaski, dwuwymiarowy napis uwypuklić w przestrzenny tekst; - Oops schematic – schematyczne przedstawienie sceny, tj. kamer, obiektów, świateł oraz relacji pomiędzy nimi, czyli: parenting, kości itd. Jest to bardzo użyteczna funkcja zwłaszcza wtedy, kiedy w scenie jest dużo obiektów i jeszcze więcej zależności pomiędzy nimi. W takiej sytuacji schematyczne przedstawienie sceny jest bardzo pomocne; - Image Browser – jak sama nazwa wskazuje, jest to okno służące do wczytywania tekstur, czyli plików graficznych, aby później móc nałożyć je na obiekty; - File Browser – okno odpowiadające za wczytywanie scen i obiektów. 2.5. Pierwsze kroki w Blenderze Za cel postawiłem sobie wymodelowanie schematycznej, człekokształtnej postaci, która posłuży do nauki i do wszelkiego rodzaju eksperymentów w zakresie modelowania, teksturowania, animowania, podpinania kości itd. Taki schematyczny model będzie dobrym przykładem, ponieważ jest stosunkowo prostą bryłą, jednak posiada na tyle skomplikowaną siatkę, że jest znakomitym materiałem do wszelkich prób i testów. Rozpocznę od omówienia opcji Layers. Pozwala ona na dowolne modelowanie, kopiowanie obiektów, kamer, świateł na różne warstwy. Sprawdza się w sytuacjach, kiedy scena 3D ma kamerę, kilka świateł i kilka modeli, a naszym zadaniem jest wymodelowanie np. kolejnego, ale bardzo skomplikowanego samochodu. Pierwszym krokiem, jaki należy postawić, jest przejście na inną warstwę (powoduje to zniknięcie wszystkich obiektów, kamer i świateł), co znacznie ułatwia pracę nad nowym modelem. Tworząc bryłę samochodu będę pracować w oknie, które poza siatką zawiera tylko zarys samochodu. Opcja Layers znacznie przyspiesza i ułatwia pracę. Opcja Layers Poznanie kolejnej opcji ułatwia szybkie przełączanie pomiędzy różnymi rzutami – Top, Front, Right w obrębie jednego okna 3D View. Do tego celu należy opanować klawiaturę numeryczną i zapamiętać, która cyfra przełącza w wybrany rzut: 0 – Camera View, 1 – Front, 3 – Right, 7 – Top, 2, 4, 6, 8 – pozwalają na skokowe obroty wokół środka-pivotu sceny 3D (góra-dół, lewoprawo). Podręczne menu Bardzo wygodnym rozwiązaniem jest tzw. podręczne menu. Prawdopodobnie programiści Blendera wzorowali się na podobnym menu, jak w programie Maya. Po naciśnięciu spacji pojawia się okno z parametrami Object, Add, Select,Edit, Transform, View. Za pomocą tych opcji można szybko dodać obiekt, skonfigurować tryb wyświetlania sceny, przeprowadzić transformację obiektu (Move, Rotate, Scale) oraz wybrać rodzaj selekcji, jakiej pragniemy użyć. Najczęściej przeprowadzanymi operacjami podczas pracy – zwłaszcza modelowania – są parametry Move, Scale i Rotate. Blender oferuje skróty klawiaturowe do tych opcji: G – move, R - rotate, S – scale. Jeżeli chcemy dokonać zmiany w zakresie tylko jednej osi, Blender oferuje taką możliwość. Jeżeli chcemy obrócić obiekt wokół osi X, to co musimy zrobić, to wcisnąć R, a następnie X. Oznacza to, że najpierw uaktywniliśmy opcje Rotate, a następnie ograniczyliśmy jej zakres tylko do osi X. Tryby edycji obiektu Znajomość tych opcji umożliwia edycję modelu w zakresie wierzchołków, całego obiektu czy też w zakresie nakładania tekstur. Tryb Object Mode jest trybem edycji całego modelu. Tryb Edit Mode umożliwia edycję wierzchołków, dodawanie nowych ścianek itd. Posłużę się przykładem, by dokładniej zobrazować zagadnienie. Domyślne okno 3D View Blendera Po uruchomieniu Blendera w oknie 3D View domyślnie umieszczona jest kamera (czarny obiekt z charakterystycznym dla kamery polem widzenia), światło (żółty okrąg) i model – box (na rysunku zaznaczony, czyli podświetlony na fioletowo). Charakterystyczny czerwono-biały okrąg z krzyżykiem w środku to kursor. Aby przystąpić do realizacji modelu postaci można posłużyć się obiektem typu sześcian jako bazą. Najpierw zaznaczam box klikając RMB (Right Mouse Button) na boksie. SMB (Scrollem myszy) można ustawić dokładną pozycję obszaru widzenia. Wymodelowanie postaci obliguje odpowiedni podział siatki oraz dokładne i przemyślane stworzenie nowych polygonów. Są to cztero-wierzchołkowe płaszczyzny, dla przykładu np. box – sześcian składa się z sześciu polygonów. W odróżnieniu od polygonu, face jest to płaszczyzna składająca się z 3 wierzchołków. Wciskam NUM1 (czyli uaktywniamy okno Front) i przechodzimy do trybu Edit Mode. Następnie należy wybrać 4 wierzchołki leżące po lewej stronie. Aby to zrobić trzeba je najpierw zaznaczyć. Wciskam klawisz Alt i za pomocą LMB obracam obiekt tak, aby selekcja wierzchołków była możliwa. Selekcja wierzchołków sześcianu Kiedy już to zostanie wykonane, można przystąpić do wymodelowania nowej ściany. Powracam zatem do okna Front – NUM1, a następnie wciskam spację. Uaktywnia się podręczne menu. Z menu Edit należy wybrać opcję extrude i zatwierdzić. Potem przy wciśniętym klawiszu Ctrl przesunąć w lewo nowo powstałą ścianę. Extrude – stworzyło nową ściankę Tworzenie modelu postaci będzie opierało się właśnie na tego typu operacjach. Funkcja Subdiv jest skrótem od Subdivision Surface (SubD). Algorytm SubD polega na iteracyjnym zagęszczaniu siatki modelu. Efekt to gładki obiekt, który swoją obłością przypomina Nurbs, lecz posiada znacznie większe możliwości tworzenia i edycji obiektów. Jednym z powodów tak wielkiej popularności SubD są właśnie te cechy, które wyżej zostały wymienione. Aby uaktywnić opcję należy kliknąć ikonę Editing lub przycisnąć klawisz F9. Editing – uaktywnia modyfikacje obiektu Opcja editing uruchamia modyfikacje, które można nałożyć na obiekt. Wśród nich znajduje się między innymi Subdiv. Klikając SubSurf uaktywniany jest Subdiv. Można zauważyć, że obiekt uległ wygładzeniu, tzn. wierzchołki obiektu zostały tak przesunięte, że model stał się bardziej krągły. Zwiększając parametr Subdiv powodujemy jeszcze większe zagęszczenie siatki. I właśnie na tym polega modelowanie postaci korzystając z ogólnego modelu, jakim są schematyczne sześciany. Pod koniec, kiedy już obiekt zostanie ukończony, uaktywnić należy opcję SubSurf w celu wygładzenia modelu. Modelując w ten sposób oszczędzamy czas i nakład pracy. Poza Subdiv w zakładce Editing jest jeszcze kilka ważnych opcji, bez których dalsze etapy pracy nie byłyby możliwe. Opcją centrującą tzw. pivot (pivot jest punktem według którego nakładane są wszelkie modyfikacje na obiekt, poza tym może służyć jako punkt, względem którego obracany jest bądź też skalowany obiekt - w Blenderze pivotem jest fioletowa kula znajdująca się w obszarze box'a) względem środka obiektu jest Center. Parametrem ustawiającym pivot według położenia kursora jest Center Cursor. Jako przykład należy w nowej scenie na dowolnym modelu (np. kula lub sześcian) kliknąć kursorem poza obszar obiektu, a następnie użyć funkcji Center Cursor. Pivot ustawi się tam, gdzie znajduje się kursor. Następnie należy użyć funkcji Rotate. Okaże się, że obrót wykonywany jest według pivot'a, a nie środka obiektu. Wpływ parametru Subdiv na gęstość siatki Aby funkcja Center Cursor mogła zadziałać, najpierw musimy zaznaczyć obiekt, na którym chcemy przeprowadzić modyfikacje. Jako przykład należy zaznaczyć np. kamerę w scenie, a następnie uaktywnić parametr Editing. Można stwierdzić, że pojawiły się zupełnie inne opcje niż w przypadku, gdy modyfikowanym obiektem był sześcian. Płynie z tego następujący wniosek: w zależności od typu zaznaczonego obiektu (tj. kamera, światło, obiekt) pojawiają się różne parametry w obrębie tego samego okna Editing. 2.6. Modelowanie metodą zagęszczania siatek (SubD Surface) W niniejszym podrozdzialę przystąpię do modelowania poglądowego obiektu. Przydatnymi do tego celu mogą być informacje związane z przesuwaniem zawartości okna, w którym modelowany jest obiekt. Trzymając MMB (Middle Mouse Button) oraz Shift można przesuwać całą zawartość okna. Wciskając Ctrl + NUM4 (lub też NUM6, NUM8 i NUM2) można przy pomocy klawiatury przesuwać się w zakresie pewnej stałej wartości. Jeżeli myszka posiada również scroll, to może on posłużyć jako tzw. zoom, czyli przybliżanie się i oddalanie od obiektu (takie same możliwości zapewnia wciskanie NUM+/-). Posiadłszy te podstawowe, a zarazem niezbędne informacje do tego, aby poruszać się po trójwymiarowej scenie można przystąpić do modelowania. Zacznę od stworzenia sześcianu. Przechodzę w tryb Edit Mode. Trzymając LMB oraz Ctrl po kolei przystępuję do zaznaczenia czterech wierzchołków na prawej ścianie sześcianu. W celu skopiowania ściany, którą tworzą zaznaczone poprzednio cztery wierzchołki, wciskam klawisz spacji i wybieram opcję extrude z zakładki Edit. Następnie uaktywniam opcję region i przystępuję do skopiowania ściany (polygonu). Można teraz zauważyć, że sześcian uległ pewnej modyfikacji – mianowicie skopiowana została jego prawa ściana. Taką właśnie metodą będę budował model człowieka. Model powinien mieć charakter poglądowy, tzn. jego liczba polygonów powinna być możliwie najmniejsza. Cel ten wynika z potrzeby, jaka zaistnieje w późniejszych etapach pracy, a mianowicie obiekt, w którym będę modyfikować tzw. szkielet, musi być możliwie jak najbardziej przejrzysty (tj. siatka obiektu powinna składać się z jak najmniejszej liczby face'ów). Ma to pomóc w zrozumieniu zasad działania pewnych modyfikatorów – opcji, które oferuje Blender. Nauka poszczególnych funkcji pozwoli na tworzenie i budowanie modeli, a później na ich animację. Dobra znajomość tych opcji w przyszłości pozwoli na kreowanie bardziej zaawansowanych modeli i animacji. Celem tego rozdziału jest zapoznanie użytkownika z możliwościami Blendera, a nie doskonalenie umiejętności. Na poprzedniej ilustracji przedstawiony został szkicowy model. Budowanie obiektu metodą extrude nie daje możliwości przesuwania poszczególnych wierzchołków osobno. Jest to jednak niewątpliwie ważny, a wręcz niezbędny krok do tego, aby tworzoną postać bardziej urealnić w zarysach. Aby to zrobić, posłużę się selekcją wybranych punktów, by używając funkcji Grab je przesuwać. Tworzony obiekt stanie się dzięki temu bardziej realistyczny. Poniższa ilustracja przedstawia model człowieka zaraz po zmianie pozycji wybranych wierzchołków w taki sposób, aby kształt i ogólny charakter modelu w sensie artystycznym był bardziej spójny i dokładniej odwzorowywał wygląd ludzkiej sylwetki. Po zakończeniu ulepszania modelu polegającym na modyfikacji położenia wierzchołków bazowych obiektu, można przystąpić do duplikacji. Duplikacja polega na wybraniu wierzchołków, które chcemy skopiować (w naszym przypadku wszystkie) i następnie przy pomocy specjalnie napisanego na te potrzeby algorytmu skopiować je przekształcając względem jednej z wybranych osi - mirror. Postaram się omówić to na przykładzie. Najpierw wybieram 3D Cursor. Następnie zaznaczam jeden wierzchołek modelu i wciskam klawisz A. Wciśnięcie klawisza A zaznacza wszystkie wierzchołki tworzące daną bryłę. Kolejnym krokiem będzie wskazanie Blenderowi punktu, względem którego nastąpi operacja mirror, czyli odbicie lustrzane obiektu. Będzie ona polegać odwróceniu wybranych wierzchołków względem jednej z osi. Przed tą operacją musimy skopiować modyfikowany model. Do tego celu posłuży opcja duplicate: Shift + D. Wciśnięcie takiej kombinacji klawiszy powoduje duplikację modelu. Następnie, aby użyć funkcji mirror, trzeba wskazać pivot – punkt względem którego nastąpi odwzorowanie wierzchołków. Punkt ten musi leżeć na prostej tworzącej środek ciała tworzonej postaci. Następnie wciskam klawisz M (mirror) i wybieram kopiowanie względem osi X w globalnym układzie. Obiekt zostaje skopiowany względem wybranego punktu i osi. Model po zastosowaniu funkcji mirror: Kolejnym krokiem jest zamiana modelu w obiekt typu SubD. Do tego celu wykorzystuje się opcję Remove Doubles. Powoduje ona złączenie (lub też usunięcie) zduplikowanych punktów-wierzchołków. W opisywanym modelu wierzchołki zostały zduplikowane przy opcji mirror dokładnie na linii, na której postawiony został pivot. Aktywując opcje Remove Doubles dokonane jest połączenie (unifikacja) tych wierzchołków, które są zduplikowane lub też mają to same położenie. Funkcja Remove dubles (Rem doubles) Następnym krokiem jest zamiana na obiekt typu SubDivision. Parametr, który pozwoli tego dokonać, to SubSur. Zwiększając jego wartość można zaobserwować wzrost zagęszczenia siatki obiektu, co wiąże się z jego coraz większą obłością. Jednakże nie jest pożądane zwiększanie parametru SubSur w nieskończoność, bowiem ma to ujemny wpływ na jakość i szybkość pracy w Blenderze. Można zaobserwować, że już przy parametrze równym 6-7 komputer odmawia płynności pracy. Dlatego też wielkość parametru SubSur nie może przekroczyć pewnego rozsądnego progu. Kolejny parametr, który opiszę, pomaga rozwiązywać problemy związane z obłością modelu 3D. Jego zadaniem jest pozorne wygładzenie (zagęszczenie) siatki modelu w celu uzyskania gładkiej powierzchni. Algorytm najpierw bada ustawienie wektora normalnego (tj. jego zwrot) wszystkich wieloboków, z których składa się obiekt, a następnie ustawia zwrot wektorów w jednym kierunku (tj. na zewnątrz lub wewnątrz bryły modelu). Postaram się podać przykład, który ułatwi zrozumienie tego zagadnienia. Wyobraźmy sobie kulę i wszystkie jej normalne wieloboków przybliżających tę kulę. Jeżeli wszystkie półproste (symbolizujące wektory) będą skierowane na zewnątrz modelu, będziemy mogli zobaczyć zewnętrzną powierzchnię kuli, czyli nasz obiekt sfery będzie wyglądał tak, jak zazwyczaj widzimy kulę w rzeczywistym świecie. Natomiast jeżeli wektory skierujemy do wewnątrz obiektu, będziemy mogli obserwować wewnętrzną powierzchnię kuli. Tak więc możemy już przystąpić do dalszego wyjaśnienia parametru Set Smooth. Jeśli wszystkie normalne zostaną ustawione w odpowiednim kierunku, algorytm nadaje każdemu wierzchołkowi oraz odpowiedniej części płaszczyzn, które dany wierzchołek łączy, pewien gradient koloru tak, aby w połączeniu z innymi wierzchołkami użytkownik komputera miał wrażenie, że model jest obły z każdej strony. Jest to zasługa wyłącznie cieniowania modelu, które nie ma nic wspólnego z zagęszczeniem siatki. Tak więc wniosek, jaki płynie z używania parametrów SubSur i SetSmooth jest taki, że należy umiejętnie posługiwać się tymi parametrami tak, aby rezultat obłości modelu był zadowalający, a parametr SubSur nie miał za dużej wartości, nie spowalniając działania komputera. Za pomocą parametru Set Smooth można spowodować interpolację w obrębie wieloboków, czyli gradientowe przejścia koloru pomiędzy wielobokami, co sprawia, że obiekt wygląda gładko, bez widocznej struktury ścian. Użycie parametru SetSmooth Ten sam model bez SetSmooth Następnym krokiem będzie dodanie głowy do tworzonego obiektu. Najszybciej można zrobić to wciskając klawisz spacji, a następnie z menu Add wybrać zakładkę Mesh i kliknąć na Cube. Aby model głowy nabrał krągłości, musimy przekonwertować go na obiekt typu SubD. W tym celu klikamy SubSur w zakładce Mesh w Editing. Przedstawiony powyżej obiekt to baza, która posłuży mi w następnych częściach opracowania jako testowy model dla ustawień materiałów, świateł, renderingu. Plik „Ludek.blend” zawierający scenę 3d z aplikacji Blender znajduje się w katalogu Załączniki/Modelowanie. 2.7. Przegląd i analiza modelowania powierzchni SubD na wybranym przykładzie w Blenderze Na wybranym przykładzie chciałbym przedstawić modelowanie typu Subdivision Surface. Obiektem modelowanym będzie klamka. Modelowanie powierzchni SubD charakteryzuje się tym, że dowolnie można zwiększać stopień zagęszczenia siatki modelu, co wpływa bezpośrednio na “jakość” krzywizny obiektu, a zatem jego dokładność, gładkość i obłość. Im większy jest stopień zagęszczenia siatki modelu, tym dokładniej odwzorowany jest obiekt wzorcowy. Dodatkowo modelowanie powierzchni SubD pozwala na lokalne zagęszczanie siatki w obrębie jednego, kilku lub kilkudziesięciu polygonów. Możliwość ta jest niesłychanie przydatna w przypadku modelowania kształtów nieregularnych, takich jak: kształty organiczne, czy w poniższym przypadku klamka. Możliwość zagęszczenia polygonów w wybranym obszarze pozwala na zachowanie rozsądnej proporcji pomiędzy stopniem gładkości krzywizn obiektu, a stosunkowo małą liczbą polygonów. Przykład modelowania klamki tą techniką posłuży jako referencja modelowania wszystkich obiektów nieregularnych i analiza wybranych zagadnień. Pozwoli to na właściwe odwzorowanie obiektu przy rozsądnej granicy ilości ścianek w obiekcie. Po uruchomieniu Blendera, w scenie 3D do dyspozycji jest kamera, światło oraz model podstawowy – sześcian. Obiekt ten posłuży jako baza do wymodelowania klamki. Zaznaczam sześcian i przechodzę w tryb Edit Mode. Zaznaczam cztery wierzchołki (lub ściankę – polygon) na jednym z boków sześcianu i wciskam E, czyli Extrude, znajdujące się w zakładce Edit menu głównego – przycisk spacji. Kopiuję wybrane wierzchołki kilkakrotnie w taki sposób, jak pokazuje to ilustracja poniżej. Następnie używając kombinacji opcji: scale (S), rotate (R) oraz grab (G) zmieniam kształt obiektu tak, jak na pokazanej niżej ilustracji. Aby sprawnie przeprowadzić te modyfikacje, należy podzielić okno główne na 2 podokna tak, aby jedno przedstawiało rzut izometryczny obiektu (ułatwi to selekcję wierzchołków obiektu) a drugie w zależności od potrzeby - rzut z boku lub z góry (przypominam, że do zmiany widoków służą klawisze 1, 3, 7, 9). Ponownie zaznaczając odpowiednie, pokazane niżej wierzchołki i używając funkcji Extrude doprowadzam kształt obiektu do przedstawionego na ilustracji poniżej. Następnym krokiem będzie lokalna zmiana kształtu końca zarysu klamki. Aby to zrobić, należy lokalnie zmodyfikować siatkę w dogodnie wybranym obszarze. Zaznaczam wierzchołki pokazane na ilustracji poniżej, a następnie wybieram opcję Loop Subdivide z menu głównego. W miejscu, w którym chcę dokonać podziału, pokazuje się podświetlony zarys cięcia. Wybieram zatem miejsce podziału i akceptuję. Na ilustracji poniżej można zaobserwować dodatkowy podział. Wykonuję podobną operację w przypadku innego obszaru obiektu. Następnie przystępuję do kolejnego lokalnego zagęszczenia siatki obiektu, ale tym razem nie “cięcia”, lecz podziału wybranych polygonów. W tym celu trzeba zaznaczyć punkty pokazane na ilustracji poniżej i uaktywnić funkcję Subdivision (należy wejść do opcji Editing F9 i uaktywnić opcje SubSur). Poniżej widać rezultat podziału ścianki zaznaczonej na powyższym ilustracji na zielono. Zaznaczam wierzchołki pokazane poniżej i funkcją Extrude, Rotate oraz Grab zmieniam kształt obiektu analogicznie do tego na poniższym obrazku. Kolejnym krokiem będzie zagęszczenie siatki polygonów pokazanych niżej. Aby to wykonać, wykorzystam sposób, który już został przeze mnie opisany. Zaznaczam wierzchołki pokazane na ilustracji powyżej, a następnie wykorzystuję opcję Extrude. Następnie używając opcji Scale skaluję nowo utworzone wierzchołki do środka polygonu. Powtarzam tę operację jeszcze dwukrotnie, tym razem jednak przesuwając wierzchołki do środka obiektu tak, aby powstały obiekt przypominał ten na ilustracji poniżej. Lekko modyfikuję za pomocą funkcji Scale uprzednio wykreowany ornament tak, by nadać mu lekkości, jak na ilustracji powyżej. Po tych drobnych modyfikacjach przystępuję do kolejnego etapu zagęszczania siatki metodą Subdivision. Wybieram wierzchołki pokazane na rysunku niżej i aktywuję funkcję Subdivision. Następnie zaznaczam wierzchołki i przesuwam je lekko do góry i w prawo (modyfikację tą pokazuje rysunek poniżej). Teraz przystąpię do modyfikacji typu Loop Subdivision wzdłuż obiektu klamki. Funkcją tą przeprowadzam dwa podziały (rysunek poniżej). Zaznaczywszy punkty, używam funkcji Extrude przesuwając nowo utworzony polygon w dół. Przystępuję do lekkiej modyfikacji kształtu klamki. Przesuwam punkty tak, jak pokazane to zostało na poniższej ilustracji. W parametrach modelu zagęszczam globalnie siatkę współczynnikiem Subdiv do wysokości 2 i włączam opcję wygładzenia materiału modelu - opcję Set Smooth. Oto wynik końcowy: Teraz przystąpię do modelowania blaszki osłonowej na drzwi. W tym celu wybieram z palety opcji menu głównego obiekt podstawowy – Cube. Skaluję go tak, jak przedstawione to zostało na rysunku poniżej. Następnie dzielę go dwukrotnie – Loop Subdivision. Tak, jak na ilustracji poniżej, zaznaczam punkty i używam funkcji Extrude. Podobnie jak w przypadku kreowania ornamentu klamki, skaluję nowo utworzone punkty do środka modelu i jeszcze raz używam funkcji Extrude. Ponownie przesuwam nowe wierzchołki w głąb obiektu. Po tych operacjach używam jeszcze raz funkcji Extrude do dokładniejszego zarysowania kształtu. Dodaję dwa podziały i funkcją Extrude uzyskuję taki kształt, jak widać poniżej. Przeprowadzam ponownie dwa podziały. Następnie najpierw dzielę wybrany obszar metodą Subdivision (zagęszcza siatkę wybranego polygonu), a potem Subdivision Loop (dodaje cięcie na wybranym polygonie). Teraz zaznaczam punkty i ponownie używam funkcji Extrude. Przesuwam punkty tak, jak na rysunku i jeszcze raz używam funkcji Extrude. Tym razem pozostawiam wierzchołki bez zmian. Ta modyfikacja powoduje “mocniejsze” zarysowanie kształtu wybranych polygonów. Efekt końcowy: Plik „Klamka.blend” zawierający scenę 3d z aplikacji Blender znajduje się w katalogu Załączniki/Modelowanie. 2.8. Obiekty Meta Ciekawym sposobem na modelowanie kształtów organicznych może być wykorzystanie do tego celu obiektów typu Meta, czyli MetaObjects. Są to podstawowe bryły, które w zakresie pewnej ustalonej odległości od swojego środka łączą się z innymi obiektami typu Meta tworząc ciekawe i jedyne w swoim rodzaju kształty. Dla zilustrowania możliwości obiektów Meta wymodeluję obiekt – kosmiczną strzelbę. Podstawowe parametry cechujące obiekty Meta to: - skala w osi X - skala w osi Y - skala w osi Z - wiresize – zagęszczenie siatki (dokładność połączeń) - threshold – zakres dzialania 2.9. Analiza zasad działania obiektów Meta Powyższa ilustracja pokazuje działanie MetaObjects. Jeżeli np. dwie kule znajdą się w odległości mniejszej niż suma R1+R2 (gdzie R1 i R2 oznaczają zakres wrażliwości oddziaływania na inny obiekt) to pomiędzy nimi tworzy się powierzchnia w pełni zachowująca ciągłość płaszczyzny kuli. Wynikiem tego jest gładkie, smukłe połączenie pomiędzy obiektami. Tego typu połączenia można stosunkowo łatwo matematycznie opisać na podstawowych bryłach geometrycznych takich, jak: – kula, – sześcian, – prostopadłościan, – tuba. W ten sposób współoddziaływujące ze sobą obiekty można łączyć budując tym samym organiczne kształty. Podstawową różnicą między SubD i MetaObjects jest brak swobody tworzenia obiektów, kontrolując jednocześnie zagęszczenie siatki. Następną różnicą w przypadku obiektów Meta jest ograniczenie kreowania brył w zakresie kilku podstawowych. W przypadku powierzchni SubD proces tworzenia obiektów organicznych trwa dłużej i oczywiście również jest opatrzony szeregiem ograniczeń, lecz niewątpliwie daje użytkownikowi znacznie szerszą gamę możliwości, zarówno pod względem jakości, jak i dokładności wykonania obiektu. Budując obiekt metodą SubdD dokładnie kontrolujemy siatkę i stawiamy punkty tam, gdzie chcemy. MetaObjects nie oferują takiej możliwości. Operujemy kilkoma podstawowymi bryłami, które dopiero w odpowiedniej bliskości łączą się tworząc powierzchnie. Na wygląd powierzchni łączącej nie mamy żadnego wpływu. Jedynymi parametrami jakimi dysponujemy są skala, wiresize i threshold bryły. Zatem wykreowane obiekty metodą MetaObjects są jakby „syntetyczne” ograniczając swobodę tworzenia artyście. 2.10. Przykład wykorzystania obiektów Meta Rozpoczynam od ustawienia 3D Cursora w odpowiednim miejscu. Punkt ten pokazuje ilustracja poniżej. Następnie tworzę obiekt typu Meta. Teraz dodaję szereg kolejnych obiektów typu MetaObjects. Poniższe ilustracje pokazują kolejne etapy tworzenia obiektu – strzelba. Modelowanie techniką MetaObjects jest pewnego rodzaju zabawą. W bardzo szybki i sprawny sposób można wymodelować obiekty, które byłyby trudne i czasochłonne w realizacji, gdybyśmy chcieli stworzyć je innymi technikami. Bez wątpienia wadą MetaObjects jest jednak fakt, że nie wszystkie obiekty można stworzyć tą techniką. Największe problemy powstają przy tworzeniu kształtów technicznych, za to do modeli organicznych MetaObjects są niezastąpione. Niestety posiadają jeszcze jedną wadę – brak kontroli nad ilością płaszczyzn w obiekcie. Oczywiście można zmieniać ilość płaszczyzn w poszczególnych modelach typu MetaObjects, jednakże nie można zmienić siatki w ten sposób, aby tam, gdzie rzeczywiście występuje duża liczba płaszczyzn pozostawić geometrię bez zmian, a tam, gdzie duża liczba płaszczyzn jest zbędna, struktura siatki została zmieniona minimalizując ilość zbędnych ścianek. Jedyna możliwość to zmienić proporcjonalnie ilość płaszczyzn w całym modelu. Plik „Strzelba.blend” zawierający scenę 3d z aplikacji Blender znajduje się w katalogu Załączniki/Modelowanie. 2.11. Wnioski Modelowanie jest procesem niezwykle istotnym w grafice 3D. Niewłaściwie wykonany model może nawet zaprzepaścić szansę na dobrze wykonaną animację. Struktura siatki modelu musi być właściwie ułożona, a na ten parametr ma wpływ jedynie grafik 3D. Wnioski stąd płynące są takie, że niezależnie od tego, czy obiekt jest wykonywany techniką Nurbs, SubD czy też MetaObjects, musi on posiadać poprawną geometrię siatki (tj. bez zbędnych zagęszczeń siatki w obszarach, które tego nie wymagają). Jest to czynnik, który bezpośrednio wpływa na wygląd finalny modelu zwłaszcza wtedy, gdy model został wcześniej poddany procesowi animacji za pomocą na przykład kości, które dodatkowo zmodyfikowały strukturę siatki. W takim wypadku źle przygotowana geometria siatki niepoprawnie odkształci się po deformacji, jaką dodatkowo nadały obiektowi kości. W takiej sytuacji wygląd finalny modelu nie będzie akceptowalny. Różnica pomiędzy Blenderem a innymi komercyjnymi programami takimi, jak Maya czy Softimage polega na tym, że w przypadku opcji do modelowania aplikacje komercyjne posiadają możliwość animacji wybranych parametrów. Jest to ogromna przewaga. W rzeczywistości nie świadczy to o potędze modelowania, lecz o potencjale animacji, bowiem dzięki takiej możliwości jesteśmy w stanie zaanimować prawie każdy parametr. Takiej możliwości Blender niestety nie oferuje. Poza tym, jak już wspomniano we wstępie, Blender posiada jedynie podstawowe opcje z zakresu wybranej dziedziny. Niemniej jednak w zupełności wystarcza to do nauki grafiki 3D na uczelni. Do ciekawych opcji modelowania, o których warto jeszcze wspomnieć należy funkcja faloff, którą posiada Lightwave 3D. Jest to bardzo przydatna i pożyteczna opcja. Działa ona w ten sposób, że każdej przeprowadzonej przez nas operacji lub modyfikacji przypisuje faloffa, który opisuje w sposób matematyczny siłę i zakres działania nakładanego przez nas na obiekt modyfikatora. Jako przykład wyobraźmy sobie powierzchnię, która jest prostokątem. Jeżeli modyfikatorowi grab (czyli przesuń) przypiszemy faloffa typu linear (od wartości początkowej 0 do wartości końcowej 1), to wierzchołki obiektu zostaną przesunięte proporcjonalnie zgodnie z interpretacją linear tak, jak na poniższej ilustracji. Faloff Do opcji godnych uwagi w zakresie modelowania typu SubD możemy jeszcze dodać artisan tool w Mai lub Push tool w Softimage'u (działający na podobnej zasadzie). Opcje te pozwalają na odkształcanie obiektu poprzez malowanie po jego powierzchni pędzlem. Ilustracja poniżej pokazuje przykład ich wykorzystania. Niewątpliwie pozostaje jeszcze szereg różnych opcji mniej lub bardziej znaczących w programach komercyjnych, które zdecydowanie wpływają na stopień zaawansowania aplikacji komercyjnej w porównaniu z Blenderem. Niemniej jednak Blender posiada dobre podstawy do tego, aby zrozumieć ideę pracy w przestrzeni trójwymiarowej. Do celów amatorskich Blender jest programem w zupełności wystarczającym.