Zakres materiału: Grafika komputerowa: Implementacja obrazów rastrowych (EK:La2), Lista 3 1) Zaawansowana edycja obiektów modyfikatory logiczne 2) Nakładanie materiałów na obiekty, raytracing 3) Renderowanie scen do obrazów rastrowych Autor: Dominik Drabik 1) Zaawansowana edycja obiektów siatkowych Operacje logiczne (Boolean logic operators) pozwalają na cięcie i łączenie obiektów siatkowych przy użyciu innych obiektów siatkowych. Innymi słowy dwa obiekty mogą być połączone w inny sposób niż za pomocą komendy Join poznanej w poprzedniej liście. Przy wykorzystaniu opcji Join oba obiekty zachowują swoje wierzchołki, natomiast przy użyciu operacji logicznej nowy kształt jest obliczany i usuwana jest wewnętrzna geometria. Istnieją trzy operacje logiczne - alternatywa (część wspólna, intersections), różnica (difference) oraz suma (union). Jest to efektywne narzędzie do wycinania kształtów ze stworzonych obiektów siatkowych. By użyć operatorów logicznych trzeba posłużyć się tzw. modyfikatorami. Modyfikatory są zbiorem różnych algorytmów do obróbki obiektów siatkowych w poszczególne sposoby (część z nich zostanie opisana przy okazji kolejnych list). By wykorzystać modyfikator logiczny konieczne jest wejście w panel modyfikatorów (zółty okrąg na obrazku obok) i z zakładki Add Modifier (zielony okrąg) dodać Boolean Modifier (niebieski okrąg). W oknie modyfikatora będzie można wybrać obiekt drugi do operacji na zaznaczonym obiekcie oraz wybrać typ operacji. Kliknięcie na okno object rozwija listę wszystkich obiektów siatkowych, możliwe jest też zaznaczenie obiektu do operacji ręcznie. Efekt operacji będzie na bieżąco uaktualniany. Po wciśnięciu klawisza Apply nowy kształt zostaje ustawiony (warto zwrócić uwagę, że obiekt do modyfikacji - drugi - ciągle jest obecny, więc czasem by zobaczyć efekt konieczne jest przesunięcie tegoż obiektu).
2) Materiały i tekstury Materiały i tekstury są wykorzystywane by zmienić obiekty na scenie z szarych na bardziej rzeczywiste. Umożliwia dodanie koloru, odblasku, przeźroczystości, pozwala wyglądać jak trawa, kamień, etc. Z racji objętości zagadnienie w tej liście opisane zostanie dodawanie jednokolorowych materiałów, a dopiero w następnej tekstur. Zawsze trzeba najpierw nadać obiektowi materiał (przed teksturowaniem). Aby dodać materiał należy zaznaczyć obiekt, na który chce się nałożyć materiał. Następnie przejść do zakładki materiałów (Materials) i dodać nowy materiał. Pojawią się nowe zakładki w których można ustawić optyczne właściwości obiektu. Obok przedstawiono opis poszczególnych zakładek. Jest to ogólny przegląd możliwych opcji. W ramach zajęć nie będziemy mieli okazji wykorzystać wszystkich możliwości. Szczegółowy opis zakładek materiałowych: Diffuse - (w wolnym przekładzie kolor rozproszony) jest to zakładka w której ustawia się rzeczywisty kolor, jaki ma obiekt. Rzeczywisty, czyli przed wszelki zmianami wynikającymi z pojawienia się cieni etc. Jeśli obiekt ma być domyślnie czerwony, to tutaj powinno się ustawić ten kolor (wystarczy kliknąć na prostokącik koloru - domyślnie biały). Tutaj także można ustawić sposób w jaki materiał jest rozkładany i liczony (domyślnym ustawieniem jest lambert, w którym jedynie można zmieniać ilość odbijanego światła). Innymi ustawieniami są Oren-Nayar, które bardziej dokładnie odzwierciedla fizykę dyfuzji światło, Toon, który jest mało fizycznym sposobem liczenia mającym na celu odzwierciedlenie stylu kreskówkowego, a także Minnareant i Fresnel, które zmieniają trochę sposób odbijania światła. Wciśnięcie prostokąta koloru wywołuje mapę, na której możemy zdefiniować kolor. Można też wpisać wartości numeryczne przy jednym z formatów RGB, HSV czy numery heksagonalne. Jest także pipeta by pobrać kolor z innego miejsca. Specular w zakładce tej ustawia się połysk obiektu. Ustawiany tutaj kolor określa, jaki kolor jest odbijany od obiektu (dla większości obiektów jest to biały). Można także kontrolować intensywność połysku oraz twardość/miękkość odblasku. Najlepiej jest własnoręcznie popatrzeć na to jakie efekty przynoszą zmiany. Shading W zakładce tej można ustawić właściwości emitujące światło obiektu poprzez zmianę wartości w zakładce Emit. Zmiana wartości Ambient zmienia rozpraszanie na obiekcie dzięki czemu zachowuje się on jakby nie padało na niego bezpośrednie światło. Istnieje tutaj także szereg innych opcji. Transparency Na razie jedynie opcja Z Transparency będzie opisana. Po zaznaczeniu okna Transparency i wybraniu Z Transparency można kontrolować jak przeźroczysty jest obiekt przy użyciu suwaka Alpha. SubSurface Scattering Wykorzystywane do poprawienia renderingu dla materiałów, dla których światło absorbuje w jednym punkcie, a emituje w drugim (na przykład w skórze).
Strands (nitki) wykorzystywane w systemach cząsteczkowych (które będą omówione w jednej z ostatnich list na zajęciach). W tych ustawieniach można ustawiać początek i szerokość nitek. Shadow W pewnych sytuacjach może zaistnieć potrzeba stworzenia obiektu, który nie będzie rzucał cienia albo kiedy cień nie powinien być na nie rzucany z innych obiektów (jak na przykład w przeźroczystych materiałach). Te opcje można ustawiać w tej zakładce. Ustawienia Halo - Stosowanie ustawienia Halo na obiekcie praktycznie sprawia, że podczas renderingu widoczne są wierzchołki. Efekt halo sprawia, że każdy wierzchołek przyjmuje zbliżony do gwiazdki obraz. Ciekawe efekty można uzyskać tworząc płaszczyznę i usuwając pozostałe wierzchołki poza jednym - w ten sposób można zrobić na przykład efekt spadającej gwiazdy. Mirror - Aby utworzyć materiał odzwierciedlający lustro albo odbijającą płaszczyznę, należy po wybraniu obiektu i nałożeniu materiału odnaleźć i zaznaczyć zakładkę Mirror (lustro). Opcje w dostępnej zakładce pozwalają na uzyskanie upragnionego efektu, są to między innymi odbicie (reflection) i kolor odbicia, Fresnel (określa siłę efektu Fresnela - jak materiał odbija zależnie od kąta pomiędzy normalną płaszczyzny i kierunkiem rzutowania widoku, przeważnie im większy kąt tym mniej przeźroczysty materiał), głębia (depth, ilość maksymalnych wewnętrznych odbić światła), maksymalny dystans odbitych promieni oraz połysk (gloss). W tym przypadku najlepiej jest poeksperymentować z ustawieniami samemu. Raytracing - Stosowanie przeźroczystości Z ma pewne ograniczenia, które można ominąć stosując przeźroczystość Raytracing. Należy jednak pamiętać, że obliczenia konieczne do przeprowadzenia by uwzględnić wszystkie efekty optyczne przy takich materiałach są dość skomplikowane i mogą zająć znaczącą ilość czasu, zwłaszcza w późniejszych etapach gdy będą renderowane animacje. W celu zastosowania przeźroczystości Raytracing wystarczy zaznaczyć Transparency i wybrać Raytrace. Dwa główne parametry decydujące o zachowaniu materiału to - IOR (Index of Refraction, współczynnik ugięcia) pozwalający na otrzymanie efektu soczewek oraz Fresnel/Blend - parametry określające przeźroczystość i efekt "grubości" szkła. Warto zwrócić uwagę na parametr Depth, jest on szczególnie istotny w przypadku tworzenia grubego przeźroczystego szkła - ilość ugięć w obiekcie może być tak znacząca, że konieczne jest zwiększenie głębi by dotrzeć wiązką poza materiał. 3) Renderowanie scen Rendering jest to proces, którego celem jest wygenerowanie obrazu stworzonych w systemie wektorowym wierzchołków, krawędzi i siatek, przypisanych materiałów oraz wyliczenie zachowania światła i odpowiednich cieni obiektów zawartych na scenie. Obraz taki jest generowany w grafice rastrowej, czyli posiada określoną rozdzielczość i piksele. Renderować można zarówno pojedyncze grafiki, serie grafik albo filmy. Definiowany jest format plików graficznych (JPEG? TIFF? PNG?), rozmiar pliku wyjściowego, wyjściową jakość, obecność cieni, obecność efektu Motion Blur a także gdzie będą zapisywane pliki. A jeśli renderowany będzie film ile klatek na sekundę powinien mieć. Wszystkie te kwestie ustawiane są w ustawieniach renderingu. Im lepsza jakość pliku
wyjściowego tym dłużej zajmie proces renderingu i więcej będzie rozmiar pliku wyjściowego. W Blenderze podzielono wszystkie ustawienia na trzy zakładki Scenę, Warstwy i Rendering (czerwony okrąg na grafice powyżej, okno warstw nie zostało opisane, gdyż nie starczy czasu na zajęciach na opis systemu warstw). Jest szereg opcji, o których warto wiedzieć, by skutecznie zapisywać efekt swojej pracy jako film lub obraz. W liście zostanie opisane zapisywanie obrazów w formacie JPEG (przedstawione w grafice na następnej stronie). W zakładce Rendering precyzuje się jak przebiega sam proces renderingu, natomiast w zakładce Scene ustawia się rozmiar, widok z której kamery ma być renderowany, etc. Opis opcji obu zakładek znajduje się poniżej. Większość ustawień można zostawić w wartościach domyślnych, o ile określone warunki nie muszą być spełnione (na przykład film w kosmosie bez grawitacji). W celu wy-renderowania prostego obrazu JPEG należy ustawić zgodnie z potrzebami wszystkie opcje poniżej zaprezentowane. Bardzo ważne jest, by ustawić typ obrazu na JPEG w Render Output. Dla pojedynczego obrazu warto podnieść jakość, gdyż jest ona drugorzędna jeśli nie renderuje się filmu. By zrenderować należy wcisnąć klawisz F12 albo wybrać przycisk Render. Po pojawieniu się zrenderowanego obrazu wystarczy wcisnąć F3, co wywoła okno do zapisu obrazu. Wystarczy już tylko podać nazwę pliku i określić lokalizację. Pamiętaj by zapisać plik z odpowiednim rozszerzeniem.
Zadanie nr 1 na zaliczenie listy Latarnia (modyfikatory logiczne) Celem zadania jest wzbogacenie modelu latarni z poprzedniej listy o okna wykorzystując w tym celu operacje logiczne na obiektach siatkowych. Stwórz sześcian i wyskaluj go do odpowiedniego kształtu i rozmiaru. Umieść sześcian na jeden ze ścianek latarni. Następnie zaznacz latarnię i przejdź do okna modyfikacji. Wybierz modyfikacje logiczne (Boolean Modifier). W oknie object wybierz stworzony przez siebie sześcian, natomiast operację zmień na różnicę (Difference) i wciśnij Apply. Na pierwszy rzut oka nic się nie zmieniło ale po zaznaczeniu i przesunięciu sześcianu zobaczysz, że kształt latarni się zmienił. Powtórz ten proces stosując inne obiekty siatkowe tak by latarnia miała przynajmniej 4 okna i jedne drzwi. Pamiętaj by dodawać modyfikator logiczny do latarni, a nie do stworzonego obiektu. Uwaga aby zaliczyć to zadanie wystarczy wysłać wyrenderowany obraz
Zadanie nr 2 na zaliczenie listy Krajobraz (nakładanie materiałów) Najwyższy czas nałożyć materiały na stworzony przez nas teren, a by wyglądał na chociaż trochę bardziej rzeczywisty. W tym zadaniu przepatrzymy jakie możliwości daje nam nakładanie materiałów. W następnej liście będziemy bardziej urzeczywistniać widoczek dodając tekstury. Wczytawszy plik z krajobrazem zaznaczmy płaszczyznę. Następnie przejdźmy do właściwości materiału i stwórzmy nowy materiał. W domyśle jego nazwa to będzie Material lub coś podobnego, zmieńmy nazwę na bardziej oddającą sens materiału (edytowane w okienku zaznaczonym na zielono). W zakładce Diffuse wybierz prostokąt koloru i wybierz kolor zielony. Z racji faktu, że ziemia/trawa nie są zwykle szczególnie jasne więc odpowiednio zmniejsz intensywność. Póki co nie wygląda to zbyt realistycznie, ale na razie testujemy podstawowe opcje materiałowe. Dodatkowo trawa nie jest szczególnie odblaskowa, więc w zakładce Specular przy Intensity zmniejsz ją do 0 (albo prawie 0). Po wyrenderowaniu (F12) scena powinna być zbliżona do widoku po prawej. Następnie dodajmy płaszczyznę wody do sceny. Stwórz płaszczyznę w widoku z góry i wyskaluj ją do rozmiarów terenu. Następnie przejdź do widoku z przodu i unieś lekko nad ziemią. Upewnij się, że nie dostrzegasz żadnych krawędzi widokiem z kamery. Ostatnim etapem jest dodanie materiału który będzie odzwierciedlał wodę, podobnie jak zrobiliśmy dla ziemi. Dodaj nowy materiał, ustaw jego nazwę, wybierz kolor Diffuse na odcień niebieskiego. Intensywność Specular utrzymaj wysoką, gdyż woda znana jest z tego że mocno odbija światło. Ostatecznie wyrenderuj scenę klawiszem F12. Ostateczny efekt powinien być zbliżony do tego obok. Uwaga aby zaliczyć to zadanie wystarczy wysłać wyrenderowany obraz
Zadanie nr 3 na zaliczenie listy Nakładanie wielu materiałów na jedną bryłę Istnieje możliwość nałożenia jednej bryle kilku materiałów w tym samym czasie. W tym celu otwórzmy nową scenę, zaznaczmy domyślnie stworzony sześcian, wejdźmy w tryb edycji i korzystając używając narzędzia subdivide (z odpowiednio ustawionymi opcjami) sprawmy, że ścianka sześcianu będzie miała w sumie 16 ścianek (po 4 ścianki na krawędź). Następnie wróćmy do trybu obiektowego i przypiszmy jeden materiał sześcianowi, a następnie dodajmy 5 kolejnych materiałów o różnym kolorze. Powinno to wyglądać podobnie jak na rysunku obok. Kolejnym etapem jest wejście w tryb edycyjny, ustawienie zaznaczania ścianek i zaznaczenie tylko ścianek na jeden ze ścianek sześcianu. Po ich zaznaczeniu należy wybrać kolejny kolor i nacisnąć przycisk Assign widoczny pod listą kolorów. Powtarzać to do momentu aż każda ścianka będzie miała inny kolor. Po zakończeniu obróbki stworzony sześcian powinien przypominać ten przedstawiony na rysunku poniżej. Ewentualnie można rozdysponować po jednym kolorze na dany bloczek każdej ścianki modelując sześcian by wyglądał podobnie do kostki Rubika. Wykorzystując narzędzie knife można łatwo wyciąć sobie obszary o innej kolorystyce. Uwaga aby zaliczyć to zadanie wystarczy wysłać wyrenderowany obraz i plik blend
Zadanie nr 4 na zaliczenie listy kieliszek wina W ramach treningu przeźroczystości i Raytracingu w tym zadaniu należy wymodelować kieliszek wina, a następnie nałożyć na niego materiał o tak skonfigurowanych parametrach, aby przypominał faktyczny szklany kieliszek wina. Poniżej widać teksturę wyjściową (dobrym pomysłem jest wczytanie jej do tła, tak jak było robione w przypadku loga) oraz efekt końcowy (do środka wrzucono czerwoną sferę). Najprostszym podejściem jest stworzenie wypełnionego okręgu (circle) a następnie ekstruzja po frontowym widoku do uzyskania finałowego kształtu. Takie podejście jednak sprawi, że stworzony kieliszek nie będzie miał parametru grubości. Najłatwiej to rozwiązać stosując modyfikator Solidify (w tym samym oknie co modyfikatory logiczne). Modyfikator ten nadaje płaszczyznom określonej grubości co jest bardzo przydatne w przypadku brył o ściankach o niewielkiej grubości. Mając na uwadze, ze kieliszek jest obiektem o wyjątkowo innych wymiarach niż domyślne ustawione dla kamery, warto wspomnieć o jeszcze jednym, znacznie wygodniejszym, sposobie ustawiania widoku kamery. Zacznijmy od przejścia do zakładki Render (ikona aparatu fotograficznego w domyślnie prawym oknie). W zakładce Dimensions znajduje się obszar oznaczony jako Rozdzielczność (Resolution) z parametrami X i Y. Zmiana wartości pomiędzy tymi parametrami wykreśli obszar o wymiarach bardziej zbliżonych do rozmiarów kieliszka. Druga sztuczka polega na przejściu do widoku kamery (klawisz 0), a następnie wywołaniu zakładki transformacji (klawisz N) i odszukanie w zakładce View opcji Lock Camera to View, którą to należy zaznaczyć. Spowoduje to zmianę obramowania obszaru kamery na czerwoną przerywaną linią, a jakiekolwiek obroty/przesunięcia widoku będą skutkować przesunięciem kamery (zamiast standardowego powrotu do normalnego widoku). Podziękowania za odkrycie możliwości zmiany układu kamery w ten sposób należą się Pani Dagmarze Rybak. Uwaga aby zaliczyć to zadanie wystarczy wysłać wyrenderowany obraz
Zadanie nr 5 na zaliczenie listy Dalszy trening modelowania i nakładania materiałów W ramach zadania wymodeluj i nałóż materiały by odwzorować kolorystykę jednego z wybranych poniżej obiektów. Pamiętaj, że (póki co) obiekt nie musi być jedną bryłą. (tak, okulary mają szkiełka!) Uwaga aby zaliczyć to zadanie wystarczy wysłać plik blend
Poznane klawisze skrótowe Skrót Opis numpad 7/1/3 widok z góry/boku/prawej strony numpad 0 widok kamery numpad 5 przełączanie się między widokiem ortogonalnym i perspektywą numpad 2/4/6/8 obrót po przestrzeni 3D ctrl+n7/1/3 widok z dołu/tyłu/lewej strony ctrl+n2/4/6/8 przesunięcie po 2D w danym kierunku scroll+lpm swobodny obrót po przestrzeni 3D shift+scroll+lpm swobodne przesunięcie po 2D Z włączenie/wyłączenie widoku szkieletowego T przywołanie/schowanie zakładki narzędzi N przywołanie/schowanie zakładki transformacji shift+s dodatkowe opcje precyzyjnego umieszczenia kursora 3D shift+a przywołanie okienka tworzenia obiektów Tab przełączanie między trybem obiektowym a edycyjnym G przesuwanie obiektu S skalowanie/rozciąganie obiektu R obracanie obiektu shift+d duplikowanie obiektu ctrl+z cofnięcie wykonanego kroku ctrl+shift+z cofnięcie cofnięcia shift+ppm zaznaczanie wielu wierzchołków/krawędzi/ścian w trybie edycyjnym B w trybie edycyjnym : wyrysowanie okna do zaznaczenia wierzchołków C w trybie edycyjnym : zaznaczanie wierzchołków w danym okręgu E w trybie edycyjnym : ekstruzja zaznaczonych wierzchołków O włączenie/wyłączenie edycji proporcjonalnej K w trybie edycyjnym : narzędzie knife F w trybie edycyjnym : łączenie wierzchołków/punktów/krzywych ctrl+j przy zaznaczeniu dwóch obiektów siatkowych : łączenie obiektów w jeden P w trybie edycyjnym : rozdzielenie wierzchołków od obiektu siatkowego F12 renderowanie sceny F3 wywołanie okna do zapisywania obrazu po wyrenderowaniu Materiały dodatkowe do listy 3 Książki: 1) Blain John, An Introduction to Blender 3D, A book for beginners, strony 54-55, 57-74, 101-103. 2) Blain John, The Complete Guide to Blender Graphics, strony 86-107 oraz 138-139. Strony internetowe: - Materiały video (ang): 1) http://gryllus.net/blender/lessons/lesson05.html (od 5-01 do 5-06 oraz 5-13)