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.

Podobne dokumenty