Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
3D grafika
Stromy v Blenderu (2. část)
14. ledna 2009, 00.00 | Vítám vás u pokračování minisérie o tvorbě rostlin v 3D modelovacím programu Blender. V předchozím článku jsme se naučili, co jsou to alfa kanály, jak s nimi pracovat a co všechno je schopen Blender vytvořit při jejich použití. V dnešním článku byste se měli seznámit s integrovaným Python skriptem, díky němuž lze velice snadno vytvořit model stromu z křivek. Článek je psán pro verzi 2.47.
Na konci svého snažení byste měli mít před sebou podobný obrázek:
Takže se pustíme do práce. Jak jsem se zmínil již v úvodu, strom se bude tvořit z křivek, nikoli z meshů, se kterými jsme dosud byli zvyklí pracovat. Do prázdné scény si tedy vložte Bézierovu křivku.:
Trošku si ji upravíme, aby se nám lépe pracovalo:
A jak vypadá křivka?
Co jsme tedy udělali? Odkliknutím Draw Handlles jsme odstranili křivky nastavující směr a sílu ohybu, dále jsme příkazy Bevel Depth a BevResol křivku rozšířili a vyhladili a konečně stiskem tlačítka ‚3D' s ní budeme moci pracovat v prostoru.
Křivku si srovnáme kliknutím na Auto v Transform Properties:
Postavíme ji. Postupně přidáme další body křivky, až vytvoří úsečku tvořenou několika body:
To bude základ budoucího kmene. Ale kmen se směrem vzhůru postupně zužuje, kdežto náš model ne. Co s tím?
Pomocí příkazu Shrink/Fatten (Alt + S) zúžíme horní část křivky - asi nějak takto:
Najedeme myší na celý kmen a klávesou L jej označíme. Následně klávesou W vyvoláme toto menu, kde aktivujeme Smooth Radius.
Nakopírujeme některé body a také je budeme extrudovat - tímto vytvoříme ty hlavní a nejsilnější větve na stromě:
Pokračujeme dál, až máme tolik větví, kolik chceme …
Tím bychom měli základ pro strom. Důkladně však zkontrolujte, že na sebe větve navazují, zda není někde volné místo nebo není křivka přetočená. Jestli je všechno v pořádku, pak přejdeme k samotnému Python skriptu. Kliknutím prostředním tlačítkem myší na mezní čáru mezi panelem nástrojů a 3D oknem vyvolejte toto menu a rozdělte si 3D okno na 2 části:
Z nabídky zobrazení vyberte Script Window :
Pokračujte přes nabídku Scripts - Wizards - Tree from Curves.
Zobrazí se vám toto okno:
A nyní budeme postupně dávat dohromady celý strom. Začneme tím, že z nabídky vybereme Generate from selection (musíte mít označenou křivku). Skript vytvoří ke křivce další objekt, tentokrát mesh, který bude mít rodičovskou vazbu na původní křivky. Křivky tedy nemažte, spíše je přesuňte do nějaké jiné vrstvy, kde nebudou překážet a v případě nutnosti je můžete použít.
(Nalevo křivka, napravo mesh).
Dalším krokem bude vytvoření malých větviček. Prvně si vysvětlíme, jak celý princip funguje. Ke kmeni přiložíte libovolný objekt typu mesh (prostorový), kterým bude procházet určitá část větve. Program následně vypočítá cestičky mezi geometrickým středem objektu a mezi vertexy daného objektu. Pokud je součástí cesty i původní větev, pak se spojí dohromady v jednu. Napsané to vypadá velice složitě, ale celou problematiku velice snadno pochopíte z následujícího obrázku a z pokusů:
Řekl bych, že nyní je vztah tvorby větviček za pomocí meshe celkem jasný. Ovšem co u složitějších objektů? Dá se vytvořit strom s hlavou Suzanne? Jistěže dá, avšak podoba již není tak patrná.
Jaké objekty jsou tedy nejlepší na tvorbu větviček? Osobně jsem se nejčastěji setkal s různě upravenými koulemi a kostkami s aplikovaným SubSurfem. Vyjímkou však nejsou ani tůzné kužely.
Vezmeme si tedy třeba tu kostku a aplikujeme na ni modifikátor SubSurf:
Tu teď nakopírujeme (pozor, abychom nemuseli za chvíli všechny objekty sjednotit, tak je kopírujte v edit modu - pokud je chcete upravit, označíte je najetím kurzoru na jeden vertex a stiskem L) na místa, kde by se logicky nacházelo nejvíce větviček (konce hlavích větví) - objekty se mohou navzájem překrývat:
Aplikujte modifikátor a objekt si nějak rozumně pojmenujte - jednoduše třeba "větvičky" ...
A jak teď donutit program vytvořit větvičky? Pomocí této nabídky:
Do kolonky OB Bound se vepíše název souboru tvořícího větvičky, ostatní hodnoty znamenají toto:
- Min Radius - šířka na koncích větviček
- Smooth - vyhlazování
- Shape Rand - náhodnost tvaru větvení
- Generations - určuje, kolik stupňů větviček se vytvoří
- Randomize Scale - náhodnost velikosti
- Inherit Scale - určuje výchozí šířku základny větvičky - 1 pro šířku původní větve
- Shape Max Ang - maximální úhel větvení
- Shape Strenght - určuje, jak moc má být větvička zohýbaná
Nastavíme parametry a dáme generovat:
Pokud se výsledek nezamlouvá, není nic jednoduššího než pozměnit pár nastavení. Žádné hodnoty pro dokonalý a věrný výsledek neexistují, proto berte výše uvedené za čistě orientační. Vždy záleží na konkrétním stromě a objektech tvořících větve.
Dalším krokem bude tvorba materiálu. Můžeme jej vytvořit klasickým způsobem nebo využít schopnosti vytváření UV textury rovnou ve skriptu. Seženeme si nějakou texturu kůry či podobného materiálu:
A v programu ji načteme do IV/Image editoru:
Jak vidíte, generujeme jak UV hodnoty, tak i materiál. Program pak sám vypočítá rozmístění textury a vytvoří materiál - většinou je třeba drobných úprav na kartě Shaders.
Jedním z posledních kroků modelování je přidání listů na větvičky. Princip je takový, že vytvoříte jistý vzorový list, který se pomocí skriptu nakopíruje na místa větví a náhodně je upraví (velikost, rotace ap). Do scény si vložte objekt (nejlepší bude asi Plane), který můžete upravit na tvar listu nebo mu přiřadit alfa texturu (viz předchozí článek). List by neměl mít moc vertexů, aby listy zbytečně nezpomalovaly závěrečný render. Zde bych rád upozornil majitele starších strojů (více než 5 let), aby si počínali opatrně, neboť si mohou velmi rychle zaplnit interní paměť.
List použitý v renderu má tento tvar:
Povšimněte si, kde se nachází centrum objektu - nikoli ve středu, ale na místě, kde je list přirostlý ke stromu. Listy se na větve nanesou pomocí tzv. DupliVert - objektů, které určují, že v místě jejich umístění bude nakopírován přiřazený objekt. Kdyby bylo centrum mimo střed, objekt by tedy čouhal z větve, místo aby byl umístěn na ní. Objekt pojmenujte třeba jako ‚List' a přejděte ke skriptu:
Do kolonky OB patří název objektu, ostatní hodnoty znamenají toto:
- Size - velikost nakopírovaných listů vzhledem k původnímu
- Branch limit - procento větví, kde se listy mohou objevit - čím větší číslo, tím tlustší větve se budou využívat
- Density - hustota, množství listů
- Random Seed - náhodnost umístění
- Random Pitch - náhodnost natočení listů v ose Z
- Randsize - náhodná velikost listů
- Limit Random - jak úzké mohou být větve, aby na nich byly ještě listy
- Angle From Branch - úhel natočení od větve
- Pitch Angle - rotace úhlu listu vzhledem k vlastní ose
- Random Roll - náhodnost rotace listu
Stejně jako u větví i zde neexistuje nějaký návod - tohle udělej tak a tak a bude to perfektní. Chce to spoustu zkoušení a času udělat věrný strom. Pokračujte tlačítkem Generate from selection a měl by se vám objevit podobný pohled:
Šedé čtverce jsou ony DupliVertex, ze kterých vycházejí listy. Pokud potřebují jakoukoli opravu (nejčastěji změna velikosti), tak stačí upravit primární objekt (původní list), ostatní objekty se upraví samy podle originálu.
Pokud jste s výsledkem spokojení a už nebudete na objektu nic měnit, označte jej a zrušte rodičovskou vazbu na původní křivku (Alt + P):
Poupravte tvar kmene (bude třeba znova nanést UV texturu) nebo předělejte model k obrazu svému, dodejte pozadí, světla, nějaký povrch a jste připraveni renderovat.
Předtím si ale soubor uložte a vypněte zbytečné programy na pozadí - nejenže zrychlíte render, ale vyprázdníte i stránkovací soubor, kam se budou nahrávat data z Blenderu. A teď už si jen vychutnejte pocit z dobře odvedené práce..
To by bylo ke stromům všechno, já doufám, že se vám tato minisérie líbila a těším se zase někdy u Blenderu na shledanou
Tématické zařazení:
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
11. května 2014
-
23. května 2014
Epson na konferenci Droidcon Berlin ukázal nové možnosti čekající na vývojáře OS Android
-
24. listopadu 2014
-
13. května 2014
Samsung NX3000: retro styl, špičkový výkon a snadná konektivita v jednom přístroji
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
15. prosince 2014
Konica Minolta pomůže živnostenským úřadům s digitalizací dokumentů
-
11. května 2014
-
26. listopadu 2014
Canon Junior Awards již posedmé ocení mladé fotografy v rámci Czech Press Photo
-
21. srpna 2014