Studentská tvůrčí a odborná činnost STOČ 2013
3D MODELY STROMŮ PRO VYUŽITÍ V REAL-TIME APLIKACI
Michaela Brázdilová
STOČ 25. dubna 2013
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
2
OBSAH ANOTACE ........................................................................................................................... 3 1 TEORIE KE STROMŮM ......................................................................................... 4 2 MODELOVÁNÍ STROMŮ ....................................................................................... 5 2.1 STROMY JAKO MESH OBJEKTY ................................................................................ 5 2.1.1 Velmi jednoduché 3D stromy ........................................................................ 5 2.1.2 2D obrázky jako stromy ................................................................................. 5 2.1.3 3D stromy složené z několika rovin ............................................................... 6 2.1.4 3D stromy složené z většího počtu rovin ....................................................... 6 2.1.5 Komplexní 3D stromy .................................................................................... 7 2.2 STROMY JAKO MESH OBJEKTY A ČÁSTICE ............................................................... 7 3 SKRIPTY .................................................................................................................... 8 3.1 ADD CURVE: SAPLING............................................................................................ 8 3.2 L-SYSTEM .............................................................................................................. 9 4 PROGRAMY NA GENEROVÁNÍ 3D STROMŮ ................................................ 10 4.1 TREE[D]................................................................................................................ 10 ZÁVĚR ............................................................................................................................... 11 SEZNAM POUŽITÉ LITERATURY .............................................................................. 11
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
3
ANOTACE Řešení tohoto tématu bylo rozděleno na několik fází. V první fázi bylo potřeba se seznámit se základními tvary stromů v odborné literatuře. Dále byla zaměřena pozornost na různé druhy 3D modelů stromů, které se v současné době používají ve 3D animacích a aplikacích. Tyto druhy jsou v práci rozděleny dle paměťových a systémových nároků na počítačovou techniku. Následující část práce se zabývá popisem různých metod tvorby modelů stromů v programu Blender. Na základě takto získaných znalostí je vytvořena jedna rozsáhlejší scéna s větším množstvím různých druhů stromů v podobném stylu, který se používá v moderních real-time aplikacích. Klíčová slova: strom, 3D grafika, modelování, renderování, animace.
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
1
4
TEORIE KE STROMŮM
Stromy mají různou výšku a šířku. Hlavní odlišnost spočívá ve tvaru jejich koruny. Tuto skutečnost je nezbytné promítnout také při modelování stromů v programu Blender. Každý typ stromu (listnatý i jehličnatý) má jiný tvar koruny. Na obrázku 1 je možné vidět základní typy korun stromů, se kterými se běžně setkáváme. [1] Jehličnaté stromy mají jehličí a listnaté stromy listí. Tato práce je soustředěna na stromy listnaté. Tvarem koruny se rozumí podobnost koruny určitému geometrickému tvaru, jako je vidět na obrázku 1. Díky tomu je možné přiřadit typy korun druhům dřevin.
Obrázek 1: Tvary korun stromů Na obrázku 1 je tvar koruny elipsoidní, kuželovitý, válcovitý, vejčitý, vřetenovitý, poschoďovitý, kulovitý, polokulovitý, vlajkovitý a deštníkový. Rozdělení korun pak může být ještě podle utváření, a to na korunu symetrickou, mírně jednostrannou a výrazně jednostrannou. Symetrická koruna je po obou stranách kmene rovnoběžně rozložena. Mírně jednostranná koruna je mírně nerovnoměrně rozložena po stranách kmene. A výrazně jednostranná koruna je výrazně nepravidelná, deformovaná, rozložení koruny je výrazně nerovnoměrné po stranách kmene.
Obrázek 2: Typy utváření korun Tato práce se zaměřuje na symetrické stromy listnaté. Listy byly použity jako textury a také materiály. Textury byly upraveny v programu Gimp.
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
2
5
MODELOVÁNÍ STROMŮ
K modelování stromů je používán program Blender 2.66a a také Blender 2.49b (skript LSystem je možné použít pouze na starších verzích). V úpravě textur je používán program Gimp.
2.1 Stromy jako mesh objekty 2.1.1 Velmi jednoduché 3D stromy Nejjednodušší varianty stromů jsou vytvořené pomocí jednoduchých geometrických objektů (koule, válec, mnohoúhelník, kužel apod.). Jako kmen je použit klasický válec a pro koruny jsou použity různé objekty, které nejvíce odpovídají tvarům koruny, které je možné vidět na obrázku 1. Jsou použity klasické barvy – zelená a hnědá, což je vidět na obrázku 3. Následně jsou použity textury na kmen i listy, což je vidět na obrázku 4. Výhody: malá náročnost na softwarové a hardwarové prostředky, nízký počet vertexů, jednoduché vytvoření Nevýhody: nepříliš reálný vzhled, málo detailů
Obrázek 3: Jednoduché stromy v Blenderu s materiálem
Obrázek 4: Jednoduché stromy v Blenderu s texturami 2.1.2 2D obrázky jako stromy 2D obrázky jako stromy jsou používány ve vzdálené krajině. Na pohled působí prostorově, ale ve skutečnosti se jedná o 2D obrázek. Na rovinu je nanesena textura s průhledným pozadím. Výhody: malá náročnost na softwarové a hardwarové prostředky, nízký počet vertexů Nevýhody: nedá se použít jako strom v popředí, protože se jedná o jednu rovinu
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
6
Obrázek 5: Textura nanesená na rovině 2.1.3 3D stromy složené z několika rovin Stromy se dají v programu Blender vytvořit také tak, že na rovinu je nanesena textura s průhledným pozadím. Následně rovinu stačí rozkopírovat a otáčet po ose z, čímž se vytvoří prostorový strom. Výhody: malá náročnost na softwarové a hardwarové prostředky, nízký počet vertexů Nevýhody: je zde vidět, že se jedná o roviny s texturami
Obrázek 6: Využití rovin a textur v Blenderu 2.1.4 3D stromy složené z většího počtu rovin Tento typ stromů se využívá zejména v real-time aplikacích, hrách a podobně. Listy s větvemi jsou vytvořeny tak, že je nanesena textura na rovinu. Roviny se pak skládají tak, aby byla vytvořena co nejreálněji vypadající koruna stromu. Více je vidět na obrázku 7. Výhody: nízký počet vertexů, malá náročnost na softwarové a hardwarové prostředky, reálný vzhled Nevýhody: při detailnějším zobrazení je možné vidět jednotlivé roviny
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
7
Obrázek 7: Strom z většího počtu rovin 2.1.5 Komplexní 3D stromy Nejjednodušší a nejrychlejší způsob vytvoření stromu je generování pomocí skriptů. Nevýhodou zde však je velký počet vertexů a vysoká náročnost na hardwarové prostředky. Nedají se tedy použít v real-time aplikacích. Renderování detailně propracovaného stromu je časově náročnější. Výhodou ale je, že jsou stromy propracované a vypadají reálně.
2.2 Stromy jako mesh objekty a částice Stromy je možné vytvořit také pomocí částicových systémů. Kmen a větve jsou modelovány ručně. Jeden list je modelován ručně, a pak jsou listy rozmnoženy právě přes částicové systémy. Na listech a kmenu jsou naneseny materiály, protože nanášení textur na listy by bylo náročné. [2]
Obrázek 8: 3D strom vytvořen přes částicové systémy
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
3
8
SKRIPTY
3.1 Add Curve: Sapling Poměrně rychlým způsobem, jak vytvořit strom, je použít skript Add Curve: Sapling. Tento skript se objevuje v novějších verzích Blenderu (2.50 a výše). Je možné zde nastavit celou řadu parametrů:
šířka kmene šířka větví, jejich hustota tvar listů, jejich počet tvar koruny
Jakmile se nastaví jednotlivé parametry, stačí nanést textury na kmen stromu a na jeho listy. Pak je možné listy měnit dle toho, jaký typ stromu chceme mít. Změní se pouze textury s listy. Vždy je potřeba, aby měly listy průhledné pozadí. Na obrázku 9 je ke zhlédnutí propracovaný strom, který vypadá reálně, ale zato je náročný na hardwarové prostředky (295 128). Na obrázku 9 je vidět vyrenderovaný obrázek. Jsou použity textury pro vytvoření listů, různé odstíny textur a také textura kmene pro reálný vzhled. [3]
Obrázek 9: Strom vytvoření pomocí skriptu Add Curve: Sapling
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
9
Je možné přes skript vytvořit i jednodušší variantu stromu, která nemá tak vysoký počet vertexů, a tak je náročnost na hardwarové prostředky menší, jak je vidět na obrázku 10.
Obrázek 10: Jednodušší varianta vytvořená pomocí skriptu
3.2 L-System L-system neboli Lindenmayerovy systémy jsou definované pomocí přepisovacích gramatik. S použitím L-systemů lze generovat fraktály, které se podobají rostlinám či stromům. Script L-System je volně ke stažení. K vytvoření je použita starší verze programu Blender 2.49b (novější verze Blenderu tento skript nepodporují). [4] Výhody: poměrně nízký počet vertexů, reálný vzhled Nevýhody: L-System je možné použít pouze na starších verzích programu Blender
Obrázek 11: Strom generovaný skriptem L-System
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
4
10
PROGRAMY NA GENEROVÁNÍ 3D STROMŮ
4.1 Tree[d] Existuje také řada programů pro generování 3D stromů. Jedním z nich je freeware program Tree[d], což je generátor se snadným ovládáním a příjemným uživatelským rozhraním. Zde jde strom vytvořit během několika minut. Tyto stromy se dají používat v real-time aplikacích. Je možné vyjmout pouze objekt, a pak ho dále upravovat například v Blenderu. V generátoru jde nastavit textura kmenu a listů, hustota listů a větví, velikost kmene, naklonění stromu a podobně. [5]
Obrázek 12: Ukázka stromu z programu Tree[d]
Obrázek 13: Závěrečná scéna
UTB ve Zlíně, Fakulta aplikované informatiky, 2013
11
ZÁVĚR Práce je zaměřena na tvorbu listnatých stromů. Některé stromy se dají díky nízkému počtu vertexů použít v real-time aplikacích. Stromy, které jsou vytvořené skripty, mají velký počet vertexů, a tak se nedají v real-time aplikacích použít. Nakonec je vytvořena scéna, ve které jsou použity jednotlivé typy stromů. Typ stromu
Počet vertexů
Velmi jednoduchý 3D strom
kolem 500 vertexů
2D obrázek stromu
6 vertexů
3D strom z několika rovin
48 vertexů
3D strom z většího počtu rovin
805 vertexů
3D stromy z částic
4 384 vertexů
3D strom s použitím skriptu Sapling
295 128 vertexů
L-System
26 149 vertexů
SEZNAM POUŽITÉ LITERATURY [1] Inventarizace lesů: Metodika venkovního sběru dat. Tvar koruny [online]. 20032013, č. 6, s. 28 [cit. 2013-04-12]. Dostupné z: http://www.uhul.cz/il/metodika/metodika6/kap_2_6_0.pdf [2] Modeling a Tree in Blender 2.5. http://www.youtube.com/watch?v=Tpz98lUTx7w [3] Blender Tree Tutorial http://vimeo.com/27668302
-
Sapling
Add-on.
2011. 2012.
Dostupné Dostupné
z: z:
[4] POKORNÝ, Pavel. Stromy v Blenderu snadno a rychle. In: Blender 3D [online]. 2005 [cit. 2013-04-21]. Dostupné z: http://www.blender3d.cz/drupal/?q=lsystem_tutorial [5] Frecle [online]. 2002 - 2013 [cit. 2013-04-21]. http://www.frecle.net/index.php?show=treed.about
Dostupné
z: