Grafika 3D: Blender, cz. XV – choinka
Przy okazji zimy i Świąt Bożego Narodzenia warto ubrać choinkę, a nóż, widelec coś pod nią znajdziemy - nową kartę graficzną do renderowania w Cycles lub przydatną do gier, a może garść kości pamięci, a może SSD - pomarzyć można. Choinka jest tak naprawdę pretekstem do poznania generatora drzew w Blenderze.
Sadzimy drzewko
Drzewo możemy co prawda sami stworzyć, ale jeżeli są to standardowe drzewa, to wygodniej i szybciej wykorzystać dodatek (addons) Sapling Tree Generator zawarty w Blenderze. Dodatek ten jest standardowo wyłączony, zatem należy go włączyć. Przejdziemy do ustawień użytkownika File -> User Preferences ([Ctrl]+[Alt]+[U]), zakładka Add‑ons. W wyszukiwarce dodatków wpisujemy "tree" i włączamy dodatek Sapling Tree Generator.
Za jego pomocą możemy generować różne gatunki drzew - od palm poprzez buki, dęby, brzozy, aż do iglaków. Dodając ozdoby uzyskamy choinkę. Dodatek ten oparty jest o krzywe (Curves), zatem wstawienie drzewka odbywa się poprzez wstawianie krzywych. [Shift]+[A] ->Curve ->Sapling Tree Gen.
Po wstawieniu drzewa po lewej stronie w Tweek Panelu pojawia się szereg pól i suwaków do modyfikacji naszego drzewa. Cała praca sprowadza się do odpowiedniego ustawienia owych kontrolek.
UWAGA: tak jak wszystkie ustawy w Tweek Panelu, które pojawiają się zaraz po wstawieniu dowolnego prymitywa, znikają bezpowrotnie po dokonaniu innej dowolnej transformacji (np. Grab, Skale lub Rotate) na naszym obiekcie. Zatem uważajmy, aby niechcący nie dokonać niepotrzebnej transformacji i utracić możliwość dalszej edycji drzewa za pomocą dodatku.
Edycja drzewa
Dodatek podzielony jest na kilka działów:
- Geometry - ogólny kształt drzewa;
- Branch Radius - grubość poszczególnych elementów drzewa: pnia, konarów, gałęzi, gałązek;
- Branch Splitting - podział i gęstość elementów drzewa;
- Branch Growth - wzrost/kształt elementów drzewa;
- Pruning - przycięcie, przystrzyżenie drzewa;
- Leaves - liście;
- Armature - armatura - system kości - wykorzystywana w animacji;
- Animation - animacja.
Geometria - ogólny kształt drzewa
Przede wszystkim możemy włączyć widoczność grubości elementów drzewa - Bevel i analogicznie jak z krzywymi ustawić gładkość w poprzek (Bevel resolution) oraz wzdłuż krzywej. (Curve resolution).
Parametr decydujący o wyglądzie drzewa to Shape (kształt). Określa on czy korona drzewa się zwęża, rozszerza, ma kształt kuli itd. Do dyspozycji kilka predefiniowanych kształtów:
- Conical - stożkowy;
- Inverse conical - odwrócony stożkowy;
- Sperical - kulisty;
- Hemisferical - półkulisty;
- Cylindrical - cylindryczny;
- Taper Cylindrical - zwężający cylindryczny;
- vInverse Taper Cylindrical - odwrócony zwężający cylindryczny;
- Flame - w kształcie płomienia;
- Tend Flame - o charakterze płomienia;
- lub Custom Shape - własny, który możemy dostroić za pomocą kolejnych suwaków Custom Shape.
Dla naszej choinki wybierzemy Conical w opcji Shape.
W Secondary Branches Shape - analogicznie jw. możemy ustawić kształt dla konarów wraz z gałęziami i gałązkami.
Branch Distribution - określamy też rozłożenie - wzdłuż pnia (wyżej/niżej) - zagęszczenia konarów oraz liczbę wiązek konarów - grup gałęzi wyrastających obok siebie z pnia - Branch Rings. Samą liczbę gałęzi ustala się w Branch Splitting - o tym nieco niżej. Dla choinki proponuję 1.5 dla rozłożenia i 10 dla wiązek.
Random seed - losowy rozsiew przyda się gdybyśmy tworzyli las i nie chcieli, aby wszystkie drzewa były identyczne, ale wymagalibyśmy, aby były tego samego typu. Aby umożliwić zmianę rozmiaru drzewa bez używania modyfikatora (i wychodzenia z Tweek Panela) mamy do dyspozycji suwaki Scale
Gdy napracujemy się w ustawianiu naszego drzewka, to warto je zapisać Export Preset, aby można później wykorzystać. Blender ma też kilka gotowych drzewek już zapisanych.
Branch Radius - grubość i kształt pnia oraz gałęzi
Ogólną grubość pnia i gałęzi ustawiamy za pomocą parametru Radius (promień), natomiast stożkowatość możemy zdefiniować określając na kilka sposobów:
- Branches Radius Ratio - współczynnik promienia gałęzi;
- Minimum Radius - minimalny promień;
- Close Tip - ostre zakończenie gałęzi;
- Root Flare - rozszerzanie pnia przy korzeniu;
- Taper - stożkowanie.
Choinki mają pień lekko stożkowaty, natomiast gałęzie prawie równoległe - i tak postaramy się to zrobić, ustawiając minimalny promień na 0.1 :
Gdybyśmy chcieli być bardziej dokładni, to możemy ustawiać parametry dla poszczególnych elementów drzewa, którym przypisano poziomy: 1. Poziom (Level) - Pień (base) lub gałęzie utworzone z podziału pnia; 2. Poziom - konary - gałęzie wyrastające bezpośrednio z pnia; 3. Poziom - gałęzie wyrastające z konarów; 4. Poziom - gałązki wyrastające z gałęzi poziomu trzeciego. Czwarty poziom jest poziomem maksymalnym i raczej wystarczającym.
Branch Splitting - gęstość i podział gałęzi
Ustalenie liczności i rozłożenia gałęzi umożliwia dokładniejszą kontrolę nad typem drzewa.
- Levels - poziomy definiują szczegółowość drzewa od tylko pnia (poziom 1) aż do gałązek (poziom4).
- Base split - określa na ile części rozdziela się pień - dla choinki oczywiście 1.
- Trunk height - pozwoli ustalić od jakiej wysokości rozpoczynają się gałęzie - dla choinki będzie to prawie od ziemi czyli poniżej 0.1.
- Secodary Base Size - definiuje rozłożystość gałęzi przy pniu.
- Split Hight - określa czy podziały mają miejsce już od dołu, czy dotyczą bardziej wierzchołka drzewa.
Kolejne kontrolki pozwolą nam ustawić szczegółowość i położenie gałęzi na poszczególnych poziomach, ale uważajcie z liczbami, gdyż jeśli wstawicie za dużą, to Blender, a właściwie wasz komputer może dostać zadyszki.
- Branches - liczba gałęzi dla każdego poziomu. Chciałbym, aby choinka miała wiele konarów (36), mniej gałęzi (6), a jeszcze mniej gałązek (4). Oczywiście każdy może spojrzeć na swoją prawdziwą (żywą lub sztuczną) choinkę, policzyć i wstawić własne wartości. Ja jeszcze nie ubrałem, więc lecę z głowy.
- Segment Splits - liczba podziałów każdej gałęzi dla danego poziomu. Założyłem, że mój iglak nie ma gałęzi co rozdzielają się, tylko wyrastają mu gałązki niższego poziomu
- Split Angle - kąt pod jakim rozdzielają się gałęzie tego samego poziomu. Działa, gdy ustawimy jakieś podziały w Segment Split. Dla choinki nie ma podziałów, zatem ten parametr nie ma wpływu.
- Split Angle Variation - odchylenie od zadanego kąta - wprowadza pewną zmienność, co czyni drzewa bardziej naturalnymi.
- Rotate Angle - kąt, pod jakim gałęzie układają się wokół gałęzi wyższego poziomu
- Rotate Angle Variation - odchylenie od zadanego kąta - wprowadza pewną zmienność, co czyni drzewa bardziej naturalnymi.
- Outward Atraction - określa wpływ na końcówki gałęzi.
- Curve Resolution - rozdzielczość krzywej, czyli ile węzłów bierze się do określenia jej gładkości. Choinka ma dość proste gałęzie, zatem tu mogą być małe wartości 3-6.
- Branching Mode - tryb ustawienia gałęzi określi, czy mają być zgodne z zadanymi kontami (Rotate), losowe (Random), czy może takie przed zmianami, a ustawione w presecie (Oryginal)
Branch Growth - długość i kształt gałęzi
To kolejna część narzędzia do generowania drzew. Z jego pomocą w tym miejscu ustalimy długość gałęzi, ich wzajemne ułożenie, a także trochę zapanujemy nad ich zakrzywieniem.
- Lenght - długość gałęzi dla każdego poziomu;
- Lenght Variation - odchylenie od zadanego, aby wprowadzić trochę losowości
- Down Angle - kąt pod jakim ułożone są względem gałęzi wyższego poziomu;
- Down Angle Variation - odchylenie od zadanego kąta;
- Curvature - zakrzywienie gałęzi;
- Curvature Variation - odchylenie od zadanego zakrzywienia gałęzi;
- Back Curvature - zakrzywienie końcówki gałęzi w drugą stronę;
- Back Curvature Variation - odchylenie od zadanego zakrzywienia gałęzi w drugą stronę;
Dla choinki, długości gałęzi ustalam tak, aby ich rozmiary względem poziomów wyższych zbliżone były do złotej reguły - ok. 0.6. Ponadto ustawiam gałęzie tak, aby były skierowane lekko w dół i jednocześnie lekko wyginały się ku górze.
Pruning - przycięcie korony drzewa
Gdybyśmy mieli ochotę, to możemy jeszcze koronę naszego drzewka przystrzyc za pomocą obwiedni, którą możemy sterować. Choinki raczej nie będę strzygł.
Leaves - liście
Dopiero liście czynią drzewo - można by rzec. Zatem pomajstrujmy przy nich - nie chcemy mieć drzewa bez liści - wystarczy, że zimą te prawdziwe są bez nich.
[list] [item]Show Leaves - włączenie widoczności listowia[/item][item]Leaf Shape - kształt liści. Do wyboru mamy liście sześciokątne (Hexagonal, prostokątne (Rectangular) lub liściem możemy uczynić inny obiekt z Blendera (Leaf Object)[/item][item]Leaves - liczba liści przypadająca na gałąź - proszę uważać, aby nie przesadzić i zbytnio obciążyć komputer[/item][item]Leaf Distribution - rozłożenie grup liści w różne kształty:
- Conical - stożkowy;
- Inverse conical - odwrócony stożkowy;
- Sperical - kulisty;
- Hemisferical - półkulisty;
- Cylindrical - cylindryczny;
- Taper Cylindrical - zwężający cylindryczny;
- vInverse Taper Cylindrical - odwrócony zwężający cylindryczny;
- Flame - w kształcie płomienia;
- Tend Flame - o charakterze płomienia.
[/item][item]Leaf Down Angle - kąt pochylenia liści względem pionu;[/item][item]Leaf Down Angle Variation - odchylenie kąta ułożenia liści względem pionu;[/item][item]Leaf Rotate Angle - kąt skręcenia liścia wokół gałązki;[/item][item]Leaf Rotate Angle Variation - odchylenie kąta skręcenia liścia wokół gałązki;[/item][item]Leaf Skale - rozmiar liści;[/item][item]Leaf Skale X - zmiana proporcji - długość względem szerokości;[/item][item]Leaf Scale Taper - zmiana długości liści w kierunku końca gałęzi;[/item][item]Leaf Skale Variation - odchylenie rozmiaru liści;[/item][item]Leaf Angle - kąt ułożenia liści względem pionu;[/item][item]Horizontal Leaves - zwrócenie liści ku górze.[/item][/list]
Dla choinki wybierzemy liście prostokątne o dużym wydłużeniu, aby przypominały igły Leaf Skale X = 0.01. Liczbę igieł przyjmiemy jako kilkaset np. 500.
Kolory igieł, pnia, nieba
Zostało nam dobranie materiałów. Dla igieł wybiorę matową zieleń, a dla pnia i gałęzi matowy brąz. Jak pracować z materiałami zawiera jeden z poprzednich wpisów: Grafika-3D-Blender-cz.-IX-materialy
Wstawię śnieżne podłoże - pofałdowany - w trybie edycyjnym przy użyciu Proportional Mode -> Random i podzielony (Subdivide) prostokąt (Rectangle) z białym materiałem.
Aby było nieco radośniej wstawię File -> Append bałwanka zrobionego onegdaj Grafika 3D: Blender, cz. III – tryb obiektowy, ćwiczenie „Bałwanek”
Utworzymy parę błyszczących bombek w różnych kolorach.
Dodam parę gwiazdek - to powyginane w trybie edycyjnym koło (Circle) z przypisanym materiałem typu Halo.
Jako kolor nieba ustawiam ciemny błękit z gradientem.
Na koniec dodam kometę i napis Wesołych Świąt z materiałem w jasnym żółtym kolorze i włączonym Emitem na w zakładce Shading.
Zapraszam do tworzenia własnych choinek i chwalenia się nimi. Tym samym pozdrawiam czytelników Dobrych Programów życząc Wesołych Świąt i szczęśliwego Nowego Roku.
Dla tych, co mają niedosyt wiedzy, tradycyjnie polecam:
- Polski kurs blendera – stworzony przez Piotra Arłukowicza najlepszy na świecie :) (http://polskikursblendera.pl/ ) polskojęzyczny zbiór wideoporadników o Blenderze – dziesiątki godzin fachowo i z humorem omawiających zakamarki Blendera.
- Troman – tworzenie gier w Blenderze (http://troman.pl/przewodnik/wprowadzenie-do-blender-game-engine_ID1 ) – portal zawierający poradniki, forum i nowości o tworzeniu gier w Blenderze.
- Wirtualne modelarstwo – napisana przez Witolda Jaworskiego darmowa (Creative Commons) książka (http://samoloty3d.pl/wm–000_p.xml ) poświęcona głównie tworzeniu realistycznych modeli 3D samolotów w Blenderze i z wykorzystaniem GIMPa oraz InkScapea.
- Kontury Kultury – magiczne miejsce we Wrocławiu (http://konturykultury.art.pl/plan.html ), gdzie mieszkańcy stolicy Dolnego Śląska i okolic mogą skorzystać z bezpłatnych warsztatów grafiki 3D – Blender, a także innych działań artystycznych.
- Świetna infografika ze skrótami do Blendera – warto wydrukować i powiesić przed biurkiem jako plakat.
- Książka Blender. 3D Content Creation Noob to Pro – dla chcących poznać Blendera ale i poćwiczyć swój angielski :)