Na tych ćwiczeniach poznamy podstawy grafiki 3D i metod modelowania przy użyciu darmowego programu Blender. Chociaż jest wiele alternatywnych aplikacji do modelowania 3D, na tych zajęciach skorzystamy z najprostszego i prawdopodobnie najbardziej dostępnego narzędzia. Niemniej jednak, zainteresowane osoby zachęcamy do przejrzenia listy aplikacji na stronie firmy Autodesk, dostępnych za darmo dla studentów PJATK.
Na początku musimy poznać podstawy interfejsu użytkownika wspomnianej aplikacji i to może zająć trochę czasu. Każda aplikacja 3D ma to do siebie, że na początku jest trudno ogarnąć podstawy i może to zniechęcić potencjalnego użytkownika do dalszej nauki. Po przejściu tego pierwszego dużego kroku, wszystko staje się jasne i zrozumiałe. Dosyć szybko jednak znowu stajemy przed dużym wyzwaniem, ponieważ żeby rzeczywiście tworzyć prawdziwą sztukę, potrzebujemy dużo wprawy i czasu.
Naszym zadaniem nie będzie poznanie wszystkiego, ale to, co uda nam się zrobić, pozwoli na dokonanie prostych obrazów w 3D, albo nawet animacji. Nawet jeśli nie zajmujesz się grafiką, wiedza ta może być pomocna do zrobienia ładnego obrazu, który będzie częścią dokumentacji Twojego programu lub pracy dyplomowej.
Aplikację Blender można ściągnąć ze strony http://www.blender.org/. Jest to jeden z najbardziej sławnych i prawdopodobnie najbardziej udanych projektów opensource. Po przejściu do zakładki Download najlepiej jest ściągnąć wersję ZIP dla swojej wersji systemu operacyjnego i rozpakować ją w dowolnym miejscu na dysku (np. na Pulpicie). Po uruchomieniu aplikacji blender.exe (lub odpowiednio dla Twojej wersji systemu), uruchomi się ekran powitalny, który można wyłączyć klikając w dowolne miejsce w oknie programu. Pokaże się wtedy główne okno programu:
Okno to jest podzielone na kilka części:
Jeśli nie widzisz wszystkich zakładek, możesz je przewijać używając środkowego przycisku myszy.
Interfejs Blendera jest mocno konfigurowalny. Wszystkie części ekranu wymienione wyżej można w zasadzie zmienić i poprzesuwać według własnych upodobań. Każdy widok można też zmienić na inny. Jeśli spojrzymy na dolny lewy róg dowolnego widoku, znajdziemy tam przycisk z rozwijanym menu zawierającym różne widoki, jakie można podstawić w jego miejsce.
Jeśli najedziemy myszą pomiędzy dwa widoki, kursor się zmieni na taki, który umożliwia zmianę rozmiaru danego widoku. W dodatku, w górnym lewym oraz dolnym prawym rogu każdego widoku występuje mały obszar (zaznaczony ukośnymi liniami) pozwalający na dodanie nowego widoku. Pociągając myszą ten róg, możemy utworzyć nowy widok poprzez podzielenie obecnego na dwie części.
Należy to jednak robić ostrożnie! Jeśli dodamy za dużo widoków, możemy spróbować niektóre skasować. Jeśli najedziemy na róg z ukośnymi kreskami znajdujący się pomiędzy dwoma widokami (z których jeden chcemy usunąć), przeciągając myszą od tego rogu w stronę jednego z tych widoków, narysuje się na nim duża strzałka, a puszczając przycisk widok z narysowaną strzałką zniknie:
Jeśli coś pójdzie nie tak i nie jesteśmy w stanie "odkręcić" interfejsu, zawsze można wybrać opcję Load factory settings z menu File. Warto jednak wziąć pod uwagę, że skasuje to również wszystko co zrobiliśmy w programie!
Jako ostatnia uwaga, warto zauważyć, że interfejs ten jest dosyć kontekstowy. Przechodząc myszą pomiędzy widokami, można zauważyć, że tło widoku pod myszą, staje się chwilowo lekko ciemniejsze. Wynika to z faktu, że wszelkie akcje (w tym przede wszystkim skróty klawiszowe) działają tylko w obrębie widoku, który jest w danym momencie pod kursorem myszy. W ten sposób można mieć wiele identycznych rodzajów widoków (np. widoków 3D), ale naciśnięcie jakiegoś skrótu klawiszowego zadziała tylko w tym, który jest pod kursorem myszy.
Skupmy się w tej chwili na widoku 3D oraz podstawowych metodach poruszania się w przestrzeni. Głównym narzędziem do poruszania się jest mysz. Najlepiej jest posiadać zwykłą mysz z 3 przyciskami - bez tego korzystanie z Blendera (jak i innych aplikacji do modelowania 3D) jest znacznie utrudnione.
Oprócz myszy można też korzystać z numerycznej klawiatury, żeby szybko przechodzić między różnymi widokami:
Na czym polega perspektywa? Najprościej mówiąc, w perspektywie przedmioty, które są blisko obserwatora, są duże, a te, które są daleko, są małe. Widok ortogonalny, z kolei, zachowuje dokładnie ten sam rozmiar obiektu, niezależnie od tego jak daleko jest on od kamery.
Po co nam ten wybór? Otóż, widoki ortogonalne są bardzo istotne, gdy modelujemy poszczególne przedmioty. Chcąc ustalić dokładne wymiary poszczególnych krawędzi danego obiektu, nie chcemy, żeby nam perspektywa burzyła delikatne wyliczenia. Dlatego rysunki techniczne i architektoniczne zazwyczaj rysujemy w widoku ortogonalnym oraz w 3 rzutach (np. z góry, z przodu i z prawej strony) - dzięki temu można używając miarki precyzyjnie odtworzyć dowolny przedmiot.
Widok ortogonalny jest jednak dla nas dosyć nienaturalny i poruszanie się w takiej przestrzeni jest bardzo trudne. Jeśli wszystko ma dokładnie ten sam rozmiar, trudno jest ocenić, co jest z przodu a co z tyłu. Gdy chcemy zatem ustalić pozycje różnych obiektów w przestrzeni 3D, koniecznie musimy korzystać z widoku perspektywy.
W scenie mamy zazwyczaj jedną albo kilka kamer (my będziemy pracować przeważnie z jedną). Kamera to obiekt pozwalający na ustalenie miejsca i sposobu, w jaki wygenerowany zostanie obraz (lub animacja) 2D, na podstawie naszej sceny 3D. Proces konwersji sceny 3D na obraz 2D nazywamy renderowaniem, a kamera to obiekt określający punkt widzenia dla wyrenderowanego obrazu.
Żeby ustalić położenie kamery, można użyć takich samych narzędzi do przesuwania jak w przypadku dowolnego obiektu (o tym za chwilę), ale jest też wygodniejszy sposób. Naciskając przycisk 0 na klawiaturze numerycznej przechodzimy do naszej głównej kamery (naciskając ten sam przycisk jeszcze raz, powracamy do poprzedniego widoku). Będąc w widoku kamery, możemy nacisnąć kombinację SHIFT - F, żeby przejść do trybu zwanego walk navigation (kiedyś był to fly navigation, stąd skrót F). W trybie walk navigation możemy korzystać z klawiszy W,A,S,D do poruszania się, myszy do obracania, oraz Q,E do podnoszenia i opuszczania. Po umieszczeniu kamery w dogodnym miejscu, potwierdzamy jej pozycję wciskając ENTER. Można też anulować pozycję wciskając ESC.
Zaznaczmy najpierw prawym przyciskiem myszy sześcian na samym środku sceny. Postaramy się zmienić jego pozycję, obrót i rozmiar w scenie używając prostych transformacji. Jeśli spojrzymy na samą górę paska narzędzi po lewej stronie widoku 3D, znajdziemy tam narzędzia w sekcji Transform:
Mamy trzy podstawowe (znane nam z poprzednich zajęć) transformacje afiniczne: translacja (przesunięcie), rotacja (obrót) oraz skalowanie. Jest jeszcze jedno dodatkowe o nazwie Mirror, które odpowiada po prostu skalowaniu przedmiotu o stały współczynnik -1 w wybranej przez użytkownika osi.
Warto w tym miejscu jednak zapamiętać skróty klawiszowe odpowiadające tym przekształceniom, gdyż one bardzo ułatwiają korzystanie z programu:
Po wybraniu transformacji, na przykład translacji (klawisz G), obiekt przykleja się do kursora i można go przenieść w dowolne miejsce na ekranie. Akcję zatwierdzamy przyciskiem ENTER na klawiaturze albo lewym przyciskiem myszy. Anulujemy klawiszem ESC (lub dowolną inną akcją).
Trzymanie naciśniętego klawisza SHIFT podczas wykonywania transformacji znacznie spowalnia oddziaływanie wybranej akcji, co pozwala bardziej precyzyjnie ustawić przedmiot w wybranym miejscu.
Jeśli rozpoczniemy jakąś transformację, tak jak opisano wyżej, przedmiot będzie się zmieniał we wszystkich 3 osiach równocześnie. Naciskając klawisze X, Y lub Z po rozpoczęciu jakiejś transformacji, można ograniczyć jej działanie tylko do wybranej osi:
Podobnie można dokonać ograniczania transformacji w dwóch osiach naraz:
Jednostki w blenderze nie mają określonej miary. Można je ustawić w zakładce Opcje sceny (po prawej stronie okna), ale nie ma to większego znaczenia. Niemniej, sama ilość jednostek bywa bardzo przydatna w modelowaniu. Otóż jak rozpoczniemy jakąś akcję, można wpisać na klawiaturze liczbę rzeczywistą reprezentującą jakąś wartość i transformacja ta zostanie wykonana z podaną wartością, np:
Żeby dodać przedmiot do sceny, można skorzystać z menu o nazwie Add. Menu to można znaleźć na pasku na samym dole widoku 3D, albo naciskając SHIFT-A na klawiaturze. W tym menu można znaleźć wiele rodzajów obiektów, jakie można dodawać, ale na tych ćwiczeniach będziemy korzystać prawie wyłącznie z obiektów typu Mesh. Kasowanie jest tak samo proste - wystarczy nacisnąć klawisz DELETE albo X i potwierdzić akcję klikając w guzik wyświetlony na ekranie albo naciskając ENTER.
Jeśli mamy kilka przedmiotów w scenie, można je zaznaczać prawym przyciskiem myszy. W połączeniu z klawiszem SHIFT możemy zaznaczyć kilka przedmiotów naraz. Klawisz A zaznacza wszystko, co jest dostępne w scenie, a ponowne naciśnięcie A (jak wszystko jest już zaznaczone) spowoduje odznaczenie (deselekcję) wszystkiego.
Oprócz tych prostych sposobów zaznaczania, warto jeszcze zajrzeć do menu Select u dołu widoku 3D. Szczególnie ciekawe są opcje Circle select (skrót klawiszowy C) oraz Box select (skrót B). Circle select pozwala zaznaczać "zamalowując" przedmioty jakby okrągłym pędzlem (kółko myszy zmienia jego rozmiar), a box select to typowe zaznaczanie prostokątem, znane z wielu programów graficznych.
Mesh, to po angielsku siatka i reprezentuje tutaj siatkę trójkątów, z jakich składają się wszystkie bryły w grafice 3D. Trójkąty te razem mogą tworzyć większe wielokąty, ale karty graficzne naszych komputerów prawie wyłącznie będą operować w oparciu o trójkąty. Jeśli zaznaczymy jakiś prosty kształt (np. sześcian), możemy przejść do jego edycji, przechodząc do tzw. trybu Edit mode. Tryby można zmienić w menu rozwijanym, na którym obecnie jest napisane Object mode, znajdującym się obok menu Object u dołu widoku 3D:
Do trybu Edit mode można przejść, albo wybierając opcję z tego menu, albo po prostu naciskając TAB na klawiaturze. W trybie edycji można zmieniać tylko jeden obiekt naraz. To samo dotyczy innych trybów, ale o nich nie będziemy mówić na tych ćwiczeniach. Podsumowując:
Każdy obiekt składa się z kilku poziomów w hierarchii opisu kształtów w 3D:
W Blenderze możemy zaznaczać dowolny z trzech podstawowych poziomów (pamiętaj, że całą bryłę przesuwamy w trybie Object), używając odpowiednich guziczków w menu pod widokiem 3D:
Po zaznaczeniu jednego lub kilku z powyższych elementów edytowanej bryły, możemy na nich stosować te same przekształcenia co poprzednio:
W przyborniku po lewej stronie widoku 3D, można znaleźć mnóstwo przydatnych narzędzi, jakie można stosować w trybie edycji. Na dzisiejszych zajęciach skupimy się na trzech z nich. Pierwszy to Extrude, czyli wytłaczanie, wyciąganie (trudno dokładnie przetłumaczyć). Narzędzie to jest często dostępne w różnych pakietach do modelowania 3D i jest bardzo intuicyjne dla użytkowników (np. w darmowym programie SketchUp).
Mając zaznaczoną ścianę objektu można nacisnąć guzik Extrude albo skrót klawiszowy E, a potem wyciągnąć daną ścianę na zewnątrz. Spróbuj zrobić następujący przykład:
Po wykonaniu powyższych kroków powinieneś otrzymać taki rysunek:
Często nam jednak brakuje szczegółów, żeby można zrobić ekstruzję dokładnie tak, jak chcemy. Przydatnym narzędziem do zwiększenia ilości ścian w przedmiocie jest narzędzie Loop Cut and Slide. Można go znaleźć w przyborniku (nieco niżej niż Extrude) albo naciskając CTRL-R na klawiaturze. Początkowo rysuje ono różowe linie tam, gdzie ma zostać umieszczone przecięcie (tzw. loop cut), a kółkiem myszy można określić ilość tych przecięć:
Zatwierdzając to działanie (lewym przyciskiem myszy) przechodzimy do kolejnego kroku, czyli "slide", w którym możemy ustalić, gdzie dokładnie ma się znajdować to przecięcie. Jeśli dodamy dwa podwójne przecięcia (tak jak wyżej), z boku i z przodu powyższego modelu, będzie można stworzyć również model taki jak poniżej:
Narzędzie to można też stosować do ekstruzji krawędzi, przez co otrzymujemy dwuwymiarowe "paski" w przestrzeni 3D, albo pojedynczych wierzchołków, z których otrzymujemy linie w 3D. Same linie nie mają żadnej widocznej postaci (tak jak pojedyncze wierzchołki), ale zaznaczając minimalnie 3 linie albo 3 wierzchołki i naciskając F na klawiaturze, można wypełnić dany kształt ścianą zamkniętą w ich obrębie.
Narzędzie do ekstruzji jest bardzo przydatne i można go użyć jako punkt wyjściowy do wielu różnych modeli. Na przykład, model dłoni jest zazwyczaj tworzony zaczynając od prostego sześcianu i stosując ekstruzję, żeby wyciągnąć z niego poszczególne palce.
Proces modelowania często przebiega od wykorzystania prostych brył jako podstawy i modyfikowania ich w celu otrzymania bardziej skomplikowanych kształtów (tak jak przykład z dłonią wyżej). Do zwiększenia szczegółowości można stosować narzędzia typu Loop Cut albo Knife, ale jest jedno o wiele prostsze. Narzędzie Subdivide (przycisk bezpośrednio nad Loop Cut and Slide) dokonuje równego podziału ścian bryły - każdy czworobok na 4 mniejsze czworoboki, a każdy trójkąt na 4 mniejsze trójkąty. Operację tę można powtórzyć naciskając przycisk subdivide kilkakrotnie, ale należy oczywiście bardzo uważać, bo jak się można domyślić, ilość ścian będzie wzrastać wykładniczo i już po kilku krokach możemy doprowadzić do przeciążenia komputera i zawieszenia programu!
Żeby zrobić ćwiczenie na ocenę 3, zrób następujące kroki:
W tej chwili mamy do dyspozycji większą ilość wierzchołków i możemy je dowolnie przesuwać, żeby stworzyć jakiś ciekawy teren, ale może to być dosyć trudne ze względu na ilość wymaganej pracy. Dlatego mamy kilka narzędzi ułatwiających wykonywanie operacji na wielu rzeczach naraz (w tym przypadku wierzchołkach). Trochę w prawo od guzików do wyboru zaznaczania pomiędzy ścianami, krawędziami i wierzchołkami, znajduje się guzik o nazwie Proportional Editing:
Po ustawieniu tego przycisku na "Enable", pojawia się dodatkowe menu z trybem pracy narzędzia, domyślnie ustawionym na "Smooth". Innym sposobem na włączenie i wyłączenie narzędzia jest skrót klawiszowy O (litera).
Żeby skończyć zadanie, zrób następujące kroki:
Celem jest uzyskanie "pagórka" jak poniżej. Jeśli chcesz, możesz spróbować innych metod "oddziaływania" z menu powyżej (np. random albo sharp) żeby zrobić w tle bardziej "odważne" góry.
UWAGA: polecam zapisywać projekt po każdym wykonanym ćwiczeniu! Program może się zawsze zawiesić! Nie jest konieczne zapisywanie stanów dla poszczególnych ćwiczeń. Do zaliczenia wystarczy pokazać ostatnie rozwiązane zadanie.
To zadanie dotyczy rzeczy czysto estetycznej. Otóż, o materiałach i renderingu będziemy mówić na następnych ćwiczeniach, ale dobrze by było nadać naszym przedmiotom chociażby podstawowe barwy, żeby wyglądały rozpoznawalnie.
Żeby nadać obiektowi kolor, musimy przejść do panelu materiałów:
Panel ten będzie prawdopodobnie pusty, więc w tym przypadku należy zacząć od kliknięcia na przycisk "New". Nie wchodząc w szczegóły poszczególnych elementów, podstawowy kolor przedmiotu określany jest kolorem "Diffuse". Zmień kolor diffuse na zielony.
Po zmianie koloru pojawia się problem, polegający na tym, że cały obiekt ma dokładnie ten sam kolor. Na szczęście możemy przypisać kilka materiałów do tego samego obiektu:
Jak spojrzymy z bliska, widać małe "kwadraty" na powierzchni naszej "łąki". Wynika to ze sposobu "cieniowania". Cieniowanie (ang. Shading), to metoda wypełniania kolorem poszczególnych ścian. W Blenderze mamy dwa tryby cieniowania:
W przypadku płaskiego cieniowania, krawędzie są widoczne, a w przypadku gładkiego - one zanikają. Po co nam ten wybór? Otóż niektóre modele wymagają płaskiego cieniowania (np. ściany budynku, każdy przedmiot z ostrymi krawędziami), a niektóre gładkiego (np. modele "organiczne" jak twarze, dłonie, karoserie niektórych samochodów), ale sporo z nich wymaga obydwu.
Wyjdź z trybu edycji do trybu obiektów i kliknij na guzik Smooth w sekcji Shading panelu narzędzi po lewej stronie widoku 3D. Do zaliczenia tego ćwiczenia powinieneś mieć obraz wielokolorowy, podobny do następującego:
Celem tego zadanie jest przećwiczenie dodawania, rozmieszczania i edycji różnych przedmiotów. Do jego zaliczenia musisz stworzyć, w miarę przekonywający domek i umieścić go gdzieś na górce:
W tym zadaniu musisz dodać swoje imię (lub jakiś inny autorski tekst) do sceny:
Teraz masz swój tekst napisany w 3D. Zauważ jednak, że jak przejdziesz do trybu edycji, to sposób rozłożenia ścian na literach jest bardzo "chaotyczny", ponieważ został ułożony automatycznie z bardzo złożonych krzywych. Rozłożenie ścian na bryle nazywa się często topologią i jest bardzo istotnym elementem modelowania. Obiekty z niepoprawną topologią są trudne w modelowaniu, nie można ich łatwo animować i trudno się na nich ustawia tekstury.
Na szczęście, Blender posiada proste narzędzie, które poprawia topologię prostych obiektów, jak ten:
Parametr Octree Depth określa ilość szczegółów w ostatecznym modelu. Im więcej, tym oczywiście ładniej wygląda ostateczny model, ale wymaga więcej pamięci. Jeśli wykonałeś powyższe punkty i teraz przejdziesz do trybu edycji, to model będzie miał o wiele lepszą, bardziej spójną topologię:
Na ocenę 5, należy zrobić bardziej złożony model niż domek. Propozycją jest model kwiatu, ale może to być coś równie skomplikowanego (np. drzewo, ptak, studnia, itp.) Zaletą kwiatów i drzew jest możliwość duplikowania ich w celu uzyskania ciekawej sceny. Osoby znające Blender mogą nawet skorzystać z układu cząsteczkowego, żeby dokonać tego procesu "automatycznie". Poniżej przykłady realizacji zadania: