Mendelova univerzita v Brně Provozně ekonomická fakulta
Animace a interaktivní prezentace modelů rostlin v prostředí webových prohlížečů Bakalářská práce
Vedoucí práce: Ing. Mgr. Jana Dannhoferová, Ph.D.
Brno 2012
Jitka Procházková
Chtěla bych poděkovat doc. Ing. Radomíru Řepkovi, Ph.D. za konzultace k modelům rostlin a poskytnutí podkladových materiálů pro práci. Dále bych ráda poděkovala Ing. Mgr. Janě Dannhoferové, Ph.D. za vedení bakalářské práce, cenné rady a konzultace.
Prohlašuji, že jsem tuto bakalářskou práci vyřešila samostatně s použitím literatury, kterou uvádím v seznamu. V Brně dne 5. ledna 2012
__________________
Abstract Procházková, J. Animations and interactive presentation of plants models in the environment of web browsers. Bachelor thesis. Brno: Mendel University in Brno, 2011. This bachelor thesis deals with analysis of options and tools of computer visualization of plants in space, progressive modeling and animation in the selected tool and searching for optimal solutions of the presentation models in a web browser. Keywords Visualization, modeling, animation, X3D, VRML, Rhinoceros, Bongo.
Abstrakt Procházková, J. Animace a interaktivní prezentace modelů rostlin v prostředí webových prohlížečů. Bakalářská práce. Brno: Mendelova univerzita v Brně, 2011. Tato bakalářská práce se zabývá analýzou možností a nástrojů počítačové vizualizace rostlin v prostoru, postupným modelováním a animací rostlin ve zvoleném nástroji a hledáním optimálního řešení prezentace modelů ve webovém prohlížeči. Klíčová slova Vizualizace, modelování, animace, X3D, VRML, Rhinoceros, Bongo.
Nástroje na animaci 3D objektů..............................................................42
7.1.1
Program Blender a jeho animační možnosti...................................42
7.1.2
Animace za použití implicitního animačního nástroje v programu Rhinoceros .......................................................................................43
7.1.3
Animační modul Bongo 2.0 beta.....................................................44
7.2
Postup animace ve zvoleném nástroji .....................................................44
Porovnání AVI a MPG formátu........................................ 48
10
Úvod a cíl práce
1 Úvod a cíl práce 1.1
Úvod
V dnešní době si bez počítačů již nedokážeme náš život představit. Počítá se s nimi ve většině různých činností člověka. Pomáhají nám řešit složité úlohy, simulují výbuchy supernov a také jejich prostřednictvím vytváříme novou realitu. Virtuální realitu. Jednou z podstatných částí tvořící virtuální realitu je počítačová grafika. Nejlépe prostorová, tedy trojrozměrná grafika. A pak stejně jak se simulují různé události ve vesmíru, můžeme pomocí 3D grafiky nasimulovat a animovat i reálné události a věci reálného světa přesně tak, jak je vnímáme pomocí zraku – trojrozměrně. Pouhé dva rozměry totiž nikdy nebudou stačit na zachycení objektu mající rozměry tři. Proto je fotografie zachycující statický obraz nedostačující, pokud si chceme prohlédnout reálný objekt opravdu pořádně. Také neskutečná složitost některých rostlin, které se zdají být až mimozemského původu, se dá jen těžko plně zachytit dvěma rozměry na statickém obraze. Což je důvod, proč byly zvoleny právě rostliny pro modelování v prostoru. Byla tudíž dána možnost studentům, kteří budou modely využívat, na ně nahlížet, jako by objekt byl přímo před nimi a oni ho mohli otáčet v rukou. Tím spíš, že některé vymodelované a animované rostliny jsou vzácné, chráněné a vyskytují se jen na určitých místech Země.
1.2 Cíl práce Cílem práce je vytvoření trojrozměrných modelů rostlin a následně i jejich animací. Dále navrhnout vhodný způsob interaktivní prezentace vytvořených modelů a animací ve webových prohlížečích.
1.3 Metodika práce Nejprve budou porovnány modelovací nástroje pro tvorbu trojrozměrných modelů rostlin. Na základě určitých kritérií budou nástroje hodnoceny a vybere se vhodný nástroj. Následně bude z několika zde uvedených možností vybrán způsob interaktivní prezentace modelů rostlin s optimalizací pro webové prohlížeče, což zahrnuje výběr formátu, do kterého se budou výsledné modely exportovat. Dále také postupy vedoucí k dosažení nižší paměťové a výkonové náročnosti modelů a optimalizace textur. Na základě vybraných nástrojů a jejich zjištěných vlastností budou modely rostlin vytvořeny a exportovány do zvoleného formátu.
Úvod a cíl práce
11
Dalším krokem je výběr nástroje pro animaci, volba formátu pro výsledné video a volba způsobu prezentace animace ve webových prohlížečích. Následně je popsán postup vytvoření a exportu animace do vybraných formátů pomocí zvolených nástrojů. Nakonec bude uveden praktický přínos modelů a animací pro studenty a učitele Lesnické a dřevařské fakulty Mendelovy univerzity v Brně a další možnosti rozšíření práce.
12
Stavba rostlin
2 Stavba rostlin Rostliny jsou velmi rozmanité. Jejich rozmanitost není dána jen stavbou těla, ale také stupněm jeho členitosti, uspořádáním atd. Základní části těla rostlin jsou kořen a prýt. Ze základních částí a jejich dělení se vycházelo při modelování jednotlivých rostlin. Veškeré zde uvedené výčty jsou napsané na základě textu o stavbě rostlin paní Voděrkové (2011).
2.1 Kořen Kořen je u většiny druhů rostlin uložen v podzemí. Pro pochopení a orientaci čtenáře si uvedeme hlavní typy kořene, kdy některé budou i dále použity v textu. • Hlavní s postranními • Svazčité
2.2 Prýt Prýt je nadzemní část rostliny a je složen ze stonku, listů a květu. Opět si zde uvedeme hlavní typy stonku, listů i květu. • Bylinné stonky o Lodyha (olistěný stonek) o Stvol (bezlistý stonek) o Stéblo (dutý s kolénky) • Dřevnaté stonky – stromy, keře • Podzemní stonek – kapradiny Nejvíce užívané při popisu modelování budou právě bylinné stonky, ale také kapradiny. Zde je tedy ukázka některých výše jmenovaných stonků.
Stavba rostlin
Obr. 1
13
Stonek typu lodyha, stéblo a stvol. (Voděrková, 2011)
Při stavbě listu je důležité zmínit jeho vnější stavbu, která se skládá z čepele a řapíku. Dále pak druhy listů, které jsou následující: • Přisedlé • Objímavé • Řapíkaté • Jednoduché • Složené, které se dále člení na: o Dlanitosložený o Lichozpeřený o Sudozpeřený
14
Stavba rostlin
Obr. 2
Přisedlý a objímavý druh listu. (Voděrková, 2011)
Obr. 3
Řapíkatý. (Voděrková, 2011)
Obr. 4
Jednoduché. (Voděrková, 2011)
Stavba rostlin
Obr. 5
15
Dlanitosložený, lichozpeřený a sudozpeřený. (Voděrková, 2011)
„Květ u krytosemenných rostlin představuje orgán pohlavního rozmnožování a je tvořen souborem specializovaných sterilních (květní obaly) a fertilních (tyčinky a pestík) částí, které vyrůstají na rozšířeném květním lůžku. Soubor většího množství květů se nazývá květenství.“ (Krejčí, 2008)
Obr. 6
Popis květu. (Krejčí, 2008)
2.3 Výtrusnice a výtrusy kapradin „Kapradiny (Polypodiophyta sp.) jsou skupinou výtrusných cévnatých rostlin – čili kapraďorostů (Pteridophyta sp.). Rozmnožují se pomocí výtrusů, které se tvoří ve výtrusnicích obvykle na spodní straně listu. Výtrusnice jsou obvykle po několika uspořádány v kupkách (sorech), které bývají kryty blánou – ostěrou. Listy kapradin mohou mít rozdělenou funkci – trofofyly, ty jsou zelené a provádí
16
Stavba rostlin
fotosyntézu a sporofyly, ty bývají nezelené a na nich se tvoří výtrusy. Trofosporofyly mají obě funkce – rozmnožování i výživu na jednom listu – list je zelený a zároveň vytváří i výtrusy.“ (Praktický průvodce mikrosvětem, 2010)
3 Nástroje pro modelování rostlin v prostoru Speciálních nástrojů pro modelaci rostlin obecně moc není. Obvykle jsou produkty zároveň použitelné na více druhů objektů, než pouze rostliny. Případně existují celé balíčky již hotových rostlin. Příkladem je Xfrog Plants od společnosti Greenworks Organic Software, což je kolekce hotových 3D stromů a rostlin, které se dají rovnou použít v různých 3D grafických a CAD programech. Každá kolekce pak obsahuje několik modelů a také vizualizací (samotných renderů) včetně alfakanálu. Podobné balíčky již hotových rostlin nabízí zdarma i jednotliví lidé, kteří je pak dávají k dispozici na svých webových stránkách. Rostliny lze modelovat pomocí 3D grafického programu, CAD programu či L-systémů.
3.1 Modelace rostlin v prostoru pomocí 3D grafického programu Modelování rostlin pomocí 3D grafického programu nepatří mezi úplně nejjednodušší činnosti. Rostliny jsou totiž podobou květu či listů velmi složité. Proto se společnost zabývající se modelováním rostlin v dnešní době snaží tuto činnost zjednodušit pomocí různých specializovaných nástrojů. Tyto nástroje mohou být jak v podobě samostatných programů, tak zásuvných modulů pro již existující 3D grafické programy. 3.1.1
Program Blender
Program Blender je multiplatformní open sorce aplikace, vyvíjena neziskovou organizací Blender Foundation, ve které lze jak vytvářet 3D modely, tak i animovat. Dále je v něm možné provádět postprodukční činnost či interaktivní aplikace. Jeho aktuální verze je 2.61. Lze ho rozšířit o celou řadu pluginů, psaných v jazyce Python. Například pro generování stromů, trávy či srsti. Tentýž jazyk je používán pro interní scriptování API. Program Blender nemá přímo plugin speciálně pro vytváření rostlin, nicméně je plnohodnotný 3D grafický program, který dosahuje kvalit komerčních programů střední třídy. Jeho nevýhodou je však nepříliš uživatelsky příjemné rozhraní. Působí mírně chaoticky a složitě.
18
Obr. 9
Nástroje pro modelování rostlin v prostoru
Rozhraní v programu Blender.
Výhodou je, již zmiňovaná, možnost pokročilých složitých animací či vytváření her (interaktivní aplikace). Možnosti Blenderu v animacích, renderování a modelaci jeho tvůrci a uživatelé demonstrovali několika krátkými filmy jako Elephants Dream či Sintel: Příběh draka. Mocnost Blenderu jako animačního nástroje, který nabízí spoustu možností za žádné nebo malé peníze, bylo posláním výše zmíněných filmů. Snahou vývojářů Blenderu je vydávat každé dva měsíce novou stabilní verzi s novými funkcemi. 3.1.2
Program Rhinoceros
Rhinoceros® je 3D grafický program, založený na NURBS a vyvíjen společností Robert McNeel & Associates. Jeho aktuální verze je 4.0, nicméně existuje již verze 5.0, která je ale zatím jen jako betaverze. Je užíván k modelování architektury, šperků, v průmyslu, k vytváření lodí, automobilů, místo skupiny programů CAD/CAM, k reverznímu inženýrství atd. Je specializován na NURBS modelování, jak bylo zmíněno výše. Zkratka NURBS znamená „non-uniform rational B-spline, což je matematická reprezentace 3D geometrie, která umožňuje přesně popsat jakýkoliv tvar od jednoduché 2D přímky, kružnice, oblouku, nebo křivky až po nejsložitější 3D povrchy organického volného či pevného tvaru. Díky jejich flexibilitě a přesnosti můžete používat NURBS modely v libovolném procesu od ilustrace po animaci nebo výrobu.“ (Robert McNeel & Associates, 2010)
Nástroje pro modelování rostlin v prostoru
19
Program také nabízí skriptovací jazyk, který je založen na Visual Basic a SDK, který umožňuje jak čtení tak i zápis přímo do souborů Rhino. Hlavní výhodou programu Rhinoceros je možnost pracovat a modelovat přesně a přitom tvarově volně s mnoha typy geometrie. Jeho nespornou výhodou je též jednoduchost ovládání celého programu. Je téměř intuitivní. Vše je přehledně vykresleno s mnoha volbami zobrazení jednotlivých skupin tlačítek. Jeho rostoucí popularita je založena na rozmanitosti multi-disciplinárních funkcí, relativně nízké ceně, jeho schopnosti importovat a exportovat více než 30 formátů souborů, které mu tak umožňují být v podstatě nástrojem na převod mezi programy na navrhování pracovních postupů. Nevýhodou je však absence nástrojů pro složitější animace či reálnější renderování vytvořených objektů. Je možné však tyto a další funkce doinstalovat jako zásuvné moduly. 3.1.3
Program Flamingo
Flamingo™ je fotorealistický renderovací modul pro program Rhinoceros, který kromě různých renderovacích možností a animací nabízí mj. také fraktálové 3D rostliny a obsahuje rozsáhlou knihovnu rostlin. Prodává se ve stabilní verzi 2.0, existuje však i beta verze Flamingo nXt, která je volně stáhnutlená k vyzkoušení. Vzhled již existující rostliny z knihovny lze ovlivnit a to změnou hustoty listů, odstraňováním spodních větví, definováním výšky či průměru stonku. V editoru je možné vytvářet nové rostliny a nebo upravovat ty existující. Při renderování jsou rostliny generovány z jednoduchých drátěných modelů.
Obr. 10
Ukázka rostliny z knihovny Flaminga z pohledu perspektiva jako drátěný model
Rostlina se edituje po zapnutí Plant control, kde se v menu zvolí některá z rostlin a po poklikání na vybranou rostlinu se zobrazí okno s různými možnostmi nastavení.
20
Nástroje pro modelování rostlin v prostoru
Lze měnit téměř vše. V menu Plant structure se vybere která část rostliny se bude měnit. Po kliknutí na tlačítko Edit se otevře další okno se třemi kartami, kde se dají nastavovat geometrie, větvení a další nastavení. Dá se také k rostlině přidávat další listy, květy a nebo dokonce plody. Případně je ubírat. Je možné také vytvořit úplně novou rostlinu a to podobně, jako se edituje stávající rostlina. Nicméně přesnou kopii existující rostliny by bylo relativně složité vytvořit. Velmi by totiž záleželo na tom, jak moc by byla podobná již vymodelované rostlině v knihovně Flaminga. Takže pokud by se podobný model knihovna Flaminga neobsahovala, nebylo by možné co nejpřesněji napodobit některé složitější tvary květů, listů či plodů. Nejsou také příliš detailní. Rostliny vytvořené pomocí programu Flamingo není možné exportovat do formátu VRML. A to z toho důvodu, že rostliny zde nejsou chápany ani tak jako objekty, ale právě jako fraktálové rostliny. 3.1.4
Ngplant
Ngplant verze 0.9.8 je software speciálně na modelování rostlin. „Designéři mohou využít interaktivní nástroj k vytvoření 3D modelů různých rostlin a stromů. Vývojáři mohou užít 3D API-nezávislé knihovny k užití generovaných modelů rostlin v jejich 3D aplikacích nebo vytvořit plugin na modelování rostlin pro různé 3D modelovací nástroje“. (Sergey Prokhorchuk, 2007) Program je zdarma a je distribuován pod podmínkami GNU General Public Licence, vytvořen Sergeyem Prokhorchukem. Softwarové knihovny, které jsou v programu použity, jsou distribuovány pod licencí BSD. Modelování rostlin v Ngplant je velmi intuitivní a snadné. Modely jde exportovat do formátu OBJ. Případně přes externí skript i do jiných formátů v programu lze vytvořit i textury a to v kartě s názvem Material. Nelze však nastavit detailně některé části rostlin, zvláště pak vytvářet složitější květy či listy. 3.1.5
PlantStudio
PlantStudio® je nástroj pro tvorbu 3D modelů a 2D rostlinných ilustrací, vytvořen Kurtz-Fernhout Software, resp. manželi Paulem Fernhoutem a Cynthií Kurtzovou. Program simuluje bylinné (nedřevěné) rostliny, jako jsou květiny, řezané květiny, zelenina, plevel, trávy a byliny pomocí parametrem řízené simulace růstu rostlin a struktury. Je dostupný ve verzi 2.10, nicméně se přestal dále vyvíjet. V programu je možné nechat rostlinu růst a v průběhu tohoto cyklu vytvářet jejich snímky. Pomocí programu je dále možné rostliny i animovat. Pomocí některé variace a selekce „evolučního umění“ se dají vytvářet celé rodiny unikátních rostlin pro 3D scény. Pomocí Plant Wizardu se vytváří nové rostliny. Má několik kroků, tedy se postupně vybírají vlastnosti rostliny. Na příklad jak mají být listy a větve aranžovány, či kolik by měla mít rostlina větví, a pod. Její finální podoba je pak zob-
Nástroje pro modelování rostlin v prostoru
21
razena v samotném PlantStudiu. S modelem rostliny se dá otáčet, zvětšovat ho či přesouvat. Je možný i export do různých formátů, dokonce i do formátu VRML. Exportovaný objekt vymodelovaný v PlantStudiu je v Rhinu pak zobrazován jako množina polygonových sítí.
Obr. 11 Nalevo je drátěný model rostliny zobrazován v Rhinu, vedle pak model té samé rostliny z programu PlantStudio
Nicméně už na první pohled je patrné, že model není dost detailní, nenabízí takové možnosti nastavení, které by vyhovovaly pro přesnější modelování reálných rostlin. Je totiž žádoucí, aby rostliny byly natolik detailní, aby byl studen lesnické fakulty schopen poznat, podle určitých znaků, o jakou jde rostlinu. Což v programu PlantStudio nelze uskutečnit. Program je zdarma. Stal se součástí neziskové organizace, kterou vytvořili vývojáři programu. 3.1.6
Xfrog
Program je od společnosti Greenworks Organic Software. Je to nástroj pro modelování a animování 3D rostlin, stromů, keřů nebo obecných organických tvarů. Jeho aktuální verze je 5.0. Existuje však ještě ve verzi 3.5 Lite, jako samostatný program pro operační systémy Windows na vytváření organických modelů, obsahuje i knihovnu s rostlinami. Xfrog funguje přímo v uživatelském prostředí 3D grafických programů Cinema 4D a Maya. Byl použit i v některých slavnějších filmech či trailerech ke známějším filmům. Lze jej zakoupit, tedy program není zdarma. K programu lze zakoupit také Xfrog Plants, což jsou kolekce hotových 3D stromů a rostlin, které se dají rovnou použít v různých 3D grafických a CAD programech a které byly vytvořeny přímo v programu Xfrog.
22
Nástroje pro modelování rostlin v prostoru
3.2 Modelace rostlin v prostoru pomocí L-systémů L-systém je zkratka Lindenmayerova systému, který byl vyvinut pro modelování růstu rostlin. „L-systémy, v minulosti též známé pod názvem Lindenmayerovy systémy, jsou skupinou fraktálů definovaných ve své nejjednodušší podobě pomocí regulárních nebo bezkontextových přepisovacích gramatik1. Název této skupiny fraktálů, na jejichž výzkumu má největší podíl Aristid Lindenmayer a Przemyslaw Prusinkiewicz, pochází ze zkráceniny anglického sousloví LOGOlike turtle. LOGO je velmi zajímavý programovací jazyk vycházející z funkcionálního programovacího jazyka LISP (syntaxe je však „přezávorkovanému“ LISPu vzdálená), ve kterém se, kromě snadného zpracování datových struktur, dají s využitím jednoduchých příkazů pomocí takzvané želvy kreslit různé obrazce složené z úseček.“ (Tišnovský, 2006) „Deterministický bezkontextový L-systém je uspořádaná trojice: G = [V, P, S], kde V je konečná abeceda symbolů, P je konečná množina pravidel tvaru a S je axiom: neprázdná posloupnost symbolů. Determinismus tohoto L-systému pramení z podmínky, že v množině P nesmějí být dvě pravidla se stejnou levou stranou. Při přepisování tedy vždy přesně víme, které pravidlo pro přepis vybrat. Poslední posloupnost symbolů získaná v poslední derivaci se ve druhém kroku geometricky interpretuje. K tomu se používá takzvaná želví grafika (turtle graphics), ve které želva reprezentuje pomyslné kreslící zařízení. Želva je definována svým stavem a tabulkou akcí. Stav se skládá ze dvou prvků, z polohy želvy a z její orientace. Želva čte sekvenčně řetězec a pomocí tabulky akcí interpretuje jednotlivé symboly jako příkazy.“ (Tišnovský, 1999) Pro generování 3D modelů L-systémů se používá program Lparser, vytvořen Laurensem J. Laprem. Takto vygenerované modely je pak možné dále upravovat v grafických 3D modelovacích programech.
3.3 Výběr vhodného nástroje pro modelování rostlin Protože některé rostliny jsou téměř stejné, přestože se jedná o jiné druhy, závisí vše na detailech. Právě podle nich se pozná jeden druh rostliny od druhého. Bude tedy nutné tyto detaily zahrnout do modelace jednotlivých 3D modelů rostlin. Navíc vymodelované rostliny v 3D prostoru mají odpovídat reálným rostlinám, takže je žádoucí je tvořit co nejpodobnější a s výše zmíněnými detaily. Zásadním kritériem pro výběr vhodného nástroje bude tedy úroveň detailnosti modelů rostlin. Dalším kritériem pak bude otevřenost vůči různým formátům, protože modely rostlin se budou interaktivně prohlížet ve webových prohlížečích, tudíž by se hodila možnost exportu od různých formátů.
Zde je myšlena formální gramatika, která je používaná v informatice a označuje strukturu formálního jazyka.
1
Nástroje pro modelování rostlin v prostoru
23
Přihlédnuto bude i k řešení uživatelského rozhraní a celkovému ovládání programu, tak jako k volnosti při modelování, což je závislé na vybavenosti programu co nejvíce funkcemi pro modelování, protože rostliny jsou složité a jejich jednotlivé, až mikroskopické části, jsou ještě složitější. Rostliny se neliší jen stavbou, ale také barevnou podobou jednotlivých částí. Tudíž bude potřeba takového nástroje, ve kterém je možné dát objektům texturu vytvořenou z reálných rostlin (vyříznutou z jejich fotografií) a s možností snadného mapování textur. Předposledním kritériem bude paměťová náročnost souboru s hotovým modelem a jako posledním kriteriem bude cena. Porovnávat se budou programy z předešlé kapitoly s výjimkou L-systémů, které nejsou ani tak na modelování rostlin, jako spíš na výpočet jejich růstu a vytváření rostlin se neprovádí pomocí grafického rozhraní, ale jen pomocí příkazů a za použití gramatik. Dále pak s výjimkou programu Xfrog, protože nebyla možnost jej vyzkoušet. Hodnoceno bylo metodou známkování ve škole, tedy 1 – nejlepší možné ohodnocení, 5 – nejhorší možné ohodnocení. Tato metoda byla zvolena, protože vyjma kritéria úrovně detailnosti modelů, které je nejvíce důležité, jsou ostatní v podstatě na stejné úrovni důležitosti. Tab. 1
Hodnocení nástrojů Program
Kritérium Blender
Rhinoceros
Flamingo
NgPlant
Plant Studio
2
1
3
2
4
Úroveň detailnosti modelů Podpora exportu/importu různých formátů Řešení ovládání programu Vybavenost nástroji a jejich možnosti Řešení texturování a mapování textur
1
2
2
4
2
4
1
2
3
2
2
1
3
3
3
2
1
3
3
4
Paměťová náročnost
3
4
3
2
1
Cena programu
1
2
3
1
1
Výsledný průměr
2,14
1,71
2,71
2,57
2,43
Program Flamingo má stejnou známku u kritéria podpora exportu/importu různých formátů, protože je v téhle funkci závislý na programu Rhinoceros, pro který je také vytvořen. Nicméně ostatní kritéria jsou závislá pouze na samotném Flamingu. Podle výsledného průměru je patrné, že nejlepším kandidátem pro nástroj na modelování rostlin ve 3D je program Rhinoceros, byl jím tedy i zvolen. Jako
24
Nástroje pro modelování rostlin v prostoru
druhý nejlepší nástroj je Blender, který Rhinoceros sice předčil v některých kritériích, nicméně důležitá výsledná známka.
Možnosti zobrazení 3D objektů ve webových prohlížečích
25
4 Možnosti zobrazení 3D objektů ve webových prohlížečích V dnešní době, kdy je možné hrát 3D hry se srovnatelnou grafikou jako samostatné aplikace přímo ve webových prohlížečích, je možností zobrazení 3D modelů s možností interaktivního ovládání, relativně hodně. Třírozměrné objekty se dnes v prohlížečích zobrazují pomocí externích zásuvných modulů či aplikací nebo je zde možnost jejich zobrazování pomocí WebGL a to v závislosti na tom, v jakém formátu je výsledný soubor s 3D objekty. Mezi nejpoužívanější formáty patří X3D a VRML, přičemž X3D koncepcí vychází z VRML97. Oba formáty zde budou řešeny jako první, protože budou použity v průběhu této kapitoly ještě mnohokrát. Dále zde budou řešeny možnosti zobrazení 3D objektů v internetových prohlížečích obecně.
4.1 Formát VRML V roce 1995 se stal prvním webově založeným 3D formátem a deklarativním jazykem. Díky své jedinečnosti v podobě podpory 3D geometrie, animací a scriptování se stal velmi oblíbeným a široce podporovaným formátem pro 3D nástroje a prohlížeče. „VRML jakožto jazyk pro popis virtuální reality je definován i normou ISO a používá se tedy pro popis jednotlivých prostorových těles i celých rozsáhlých scén v aplikacích virtuální reality a na Internetu, kde slouží v podobě přenosového prostředku pro data popisující trojrozměrné modely. VRML soubor je textový popis vašeho VRML světa. Je to soubor obsahující text, který můžete vytvořit pomocí jakéhokoliv textového editoru nebo textového procesoru. Je možné ho také vytvořit užitím aplikací, které povolují editovat světy ve třech rozměrech nebo utility, které konvertují jiné grafické formáty do VRML. Váš VRML soubor popisuje jak sestavovat různé tvary, kam je dát a jakou barvou mají mít a tak dále. VRML soubory pojmenovány koncovkou .wrl označují, že soubor obsahuje VRML svět.“ (Ames, Nadeau, Moreland, 1997) Skládají se z jednotlivých částí, kterým se říká uzly. Uzly mohou mít parametry, přičemž parametrem může být i jiný uzel, tedy zde dochází k tomu, že objekty mohou dědit své vlastnosti po rodičích. Samotný popis scény je pak jakýmsi stromem s hierarchickou strukturou a definice objektů jsou v uzlech a listech tohoto stromu. Má i prostředky pro tvorbu virtuální reality, kdy jednotlivé objekty se mohou hýbat, měnit barvu, reagovat na přítomnost Avatara (virtuální návštěvník), na časovač či na jiné objekty generující nějakou událost. Lze popsat i vlastnosti povrchu tělesa, ale i okolí, myšleno světla a dokonce též zvuky. Virtuálními světy je tudíž možné procházet na webu v reálném čase.
26
Možnosti zobrazení 3D objektů ve webových prohlížečích
Díky jednoduchosti exportu do VRML, se z tohoto formátu stal prostředek pro komunikaci mezi různými 3D editory, prohlížeči 3D modelů a renderovacími programy. Je možné ho použít i pro reklamní účely, vizualizace pro prodej nemovitostí, výukové účely, návrhy interiérů a další. Mezi jeho některé nevýhody stojící za zmínku nemožnost popisu plošných tvarů, podporu NRUBS bez nutnosti použití rozšiřujících modulů a další.
4.2 Formát X3D Jehož zkratka znamená Extensible 3D je „scénograf architektury a souborů ve formátu kódování, které vylepšuje mezinárodní standard VRML (formálně uváděn jako ISO/IEC 14772-1:1997, ale často je nazýván VRML2 nebo VRML97). X3D používá XML k vyjádření geometrie a možnosti chování VRML. VRML je znám jako velmi expresivní 3D výměnný formát, který je podporován spoustou nástrojů. Kromě vyjádření různých geometrií vizualizací a chováním animací, X3D umožňuje programové skriptování (v ECMASCRIPT nebo v Javě) a vytváření prototypů uzlů, což dohromady poskytuje vynikající podporu pro scénografických rozšíření a novou jazykovou funkcionalitu definovanou autory.“ (Brutzman, Daly, 2007) Protože je jeho syntaxe zápisu založená na XML, má celou řadu předností. Příkladem může být „jednoduché zpracování celého dokumentu pomocí velkého množství knihoven a programových API pro práci s XML, možnost poloautomatické serializace a deserializace prostorové scény do X3D, relativně snadné převody mezi X3D a dalšími formáty apod.“ (Tišnovský, 2008) Podle prezidenta firmy Yumetech – Alana Hudsona, který je předsedou Web3D Open Source Working Group, jsou dalšími důvody , pro volbu XML, potřeba, aby XML iteroperovalo s Webem, začlenit nové grafické technologie standardizovaným způsobem, spouštět VRML obsah přes ty samé prohlížeče a je potřeba standardu, který je možné vyvíjet rychleji než jednou za 5 let. Jedná se tedy o ISO standard, který umožňuje ratifikaci systému pro ukládání, vyhledávání a přehrávání v reálním čase grafického obsahu vložený v aplikacích a to vše v rámci otevřené architektury pro podporu širokého spektra oboru a uživatelského scénáře. X3D vlastní bohatou sadu funkcí, které jsou přizpůsobené pro použití ve strojírenství, pro vědecké či lékařské vizualizace, CAD a architekturu, školení a simulaci, multimédia a zábavu, ve školství atd. Modulární architektura umožňuje X3D vrstvené „profily“, které mohou poskytnout: • Zvýšenou funkčnost pro imerzivní prostředí a zvýšení interaktivity nebo • Formáty zaměřené na výměnu dat z aplikací v rámci malých rozměrů ke stažení skládajících se z modulárních bloků funkčnosti, které mohou být snadno pochopitelné a implementovatelné aplikací. Mezi základní profily X3D patří výměna, jakožto základní profil pro komunikaci mezi aplikacemi. Sestává z geometrie, textur, základního osvětlení a animace.
Možnosti zobrazení 3D objektů ve webových prohlížečích
27
Interaktivně umožňuje základní interakce s 3D prostředím a to přidáním různých senzorových uzlů pro uživatelské ovládání a interakci (například Dotykový senzor), lepšího časování a dodatečného osvětlování. Plně zahrnuje všechny definované uzly, včetně NURBS, H-Anim a geoprostorové komponenty. Komprese by zde měla být účinnější než to bylo u VRML užívající gzip, což patří mezi výhody X3D – soubory X3D by měly být menší než soubory VRML a měly by být rychleji vykreslovány. S X3D souvisí také X3DOM, což je framework k podpoře X3D v HTML a je renderován pomocí WebGL, kterému bude ještě věnována pozornost níže. Pak není nutný žádný zásuvný modul k prohlížení X3DOM souborů, ačkoliv je podporován jen v aktuálních verzích prohlížečů Firefox, Chrome, Safari a nebo Internetu Explorer s Flash 11. Cílem X3DOM a jeho vývoje je mít živou X3D scénu v prohlížeči, která dovoluje manipulovat s 3D obsahem jednoduše přidáváním, odstraňováním či měněním DOM2 elementů. Není zde tedy potřeba specifických zásuvných modulů nebo rozhraní.
4.3 Externí zásuvné moduly Pro zobrazení VRML či X3D souborů se používají externí zásuvné moduly, pokud je chceme zobrazovat ve webovém prohlížeči, pro který je modul nainstalován. Většina zásuvných modulů jej umožňuje nainstalovat pro více webových prohlížečů na jednom počítači. Stejně tak může být nainstalováno více zásuvných modulů pro zobrazování VRML či X3D souborů, nicméně je nutné vypnout ostatní zásuvné moduly, které nejsou používány. Správně nainstalovaný zásuvný modul je pak schopný zobrazovat 3D objekty přímo v okně prohlížeče, dovoluje 3D objekty otáčet, zvětšovat či zmenšovat. Díky této možnosti interaktivity jsou velmi oblíbené a často používané. Téměř všechny dnes nejpoužívanější webové prohlížeče jsou podporovány většinou existujících zásuvných modulů, přičemž ne všechny jsou multiplatformní. Všechny podporují operační systémy Windows a některé Mac i Linux, jak je patrné z následující tabulky:
DOM – Document Object Model je jazykově a platformě neutrální rozhraní, které umožňuje programům a skriptům dynamický přístup a aktualizaci obsahu, struktury a stylu dokumentů. (W3C, 2005)
2
28
Tab. 2
Možnosti zobrazení 3D objektů ve webových prohlížečích
Srovnání externích zásuvných modulů Software
Typ
Operační systém Windows
Linux
BS Contact P,S X X Cortona 3D Viewer P X Cosmo Player P X Flux Player P,S X FreeWRL S,P,T X X OpenVRL S,P,T X X Vysvětlivky: P – plugin, s – standalone aplikace, T – toolkit. Zdroj: http://cic.nist.gov/vrml/vbdetect.html
Podpora X3D Mac X
X
X X
X X X
V tabulce jsou uvedeny nejznámější a nejpoužívanější zásuvné moduly pro zobrazování VRML souborů ve webových prohlížečích. Ty, které dokáží zobrazovat i X3D soubory jsou zvlášť označeny ve sloupci.
4.4 Vykreslování 3D objektů pomocí WebGL Zkratka WebGL znamená Web-based Graphics Library, v doslovném překladu znamenající webově založená grafická knihovna. Zobrazuje 3D grafiku na webové stránce pomocí elementu zvaném canvas, plátno. Protože se tento element vyskytuje pouze v HTML5, je přítomnost HTML5 jeho podmínkou. Díky přímého použití grafické karty při vykreslování je zaručena vysoká rychlost výpočtu snímků. Nicméně pro funkčnost je nutné mít podporovanou grafickou kartu, aby vše fungovalo správně. GPU navíc musí zvládat shader rendering, které je využíváno WebGL. Dále, jak už bylo zmíněno, je nutné mít webový prohlížeč, který podporuje HTML5 a zároveň i WebGL, přičemž nejnovější verze Firefoxu od společnosti Mozilla či internetový prohlížeč Chrome od společnosti Google oba požadavky splňují. WebGL by měl nahradit platformu Adobe Flash, s čímž počítají některé velké internetové firmy. Proto se zaměřují na vývoj experimentů pro vylepšení svých stávajících služeb souvisejících s WebGL. Je odvozen z OpenGL® ES 2.0 a poskytuje podobné renderovací funkce, ale v kontextu HTML. Je koncipován jako kontext pro vykreslování HTML elementu canvas, který byl zmíněn již výše. Tento element pak poskytuje místo pro programové vykreslování webových stránek a umožňuje provedení, které při renderování užívá různé renderovací API. Verze 1.0 WebGL byla vypuštěna v Březnu roku 2011. Protože je tato technologie relativně nová, má některé kritické bezpečnostní chyby, na jejichž odstranění se pracuje. Aby bylo možné vytvořit WebGL scény bez nutnosti programování, je nutné použít grafický program pro vytváření 3D objektů, jako Rhinoceros, Blender či Autodesk Maya. Scény jsou pak exportovány do formátu WebGL. Poprvé bylo
Možnosti zobrazení 3D objektů ve webových prohlížečích
29
možné exportovat do WebGL objekt vytvořený v grafickém programu pomocí Inka3D, což je zásuvný modul pro export pro program Maya. Grafickou knihovnu WebGL používá i některá další API, jejichž výsledné soubory jsou pak spustitelné, právě díky WebGL, přímo ve webových prohlížečích. Je to například 03D, což je open source JavaScript API, které vytvořila firma Google, aby byl použit pro vytváření interaktivních 3D grafických aplikací, které běží přímo v okně internetového prohlížeče.
4.5 Unity Unity je integrovaný vývojový nástroj pro tvorbu 3D videoher a nebo jiného interaktivního obsahu, jako jsou architektonické vizualizace či 3D animace. Je multiplatformní, tedy je spustitelný pod Microsoft Windows, Mac OS X a výslednou aplikaci lze spustit jak na PC s některým ze zmíněných operačních systémů, tak i na Xboxu 360, PlayStation 3, Wii, Ipad i Iphone. Jsou také spustistelné v OS Aneroid či dokonce v internetovém prohlížeči a to pomocí speciálního zásuvného modulu Unity Web Player. Podporuje integraci s 3D grafickými programy jako 3ds Max, Maya, Blender či Cinema 4D. „Grafický engine užívá Direct3D, OpenGL, OpenGL ES a vlastní API. Nabízí renderovací dynamické osvětlení, vytváření realistických terénů pomocí jednoduchého editoru, implementaci fyzikálního modelu založeného na NVIDIA® PhysX®, profesionální editaci animací a zvuku a mnoho dalších možností.“ (Inizio, 2011) Engine Unity 3 je optimalizován pro rychlost a kvalitu, nabízí přesnost ovládání herního prostředí, dobře vypadající výhledy neuvěřitelnou rychlostí, plně integrované vrstvení, kvalitní zpracování zvuku, flexibilní scriptování s výkonem nativního kódu. Je napsán v jazyce C++ a C# a je vyvíjen Unity Technologies. Unity je jako editor a engine ve verzi 3. Nativně podporuje import souborů programu Blender. Čehož se dosahuje pomocí Blender FBX importer, který byl zařazen do Blenderu ve verzi 2.45.
30
Testování a výběr optimální možnosti
5 Testování a výběr optimální možnosti V této kapitole se budou rozebírat vlastnosti jednotlivých výše uvedených nástrojů, kdy se vybere ta možnost, dosahujících nejlepších výsledků. Při vytváření rostlin v programu Rhinoceros byl mj. sledován vliv jednotlivých druhů 3D objektů na velikost 3dm souboru. Tak bylo při pokusech zjištěno, že použití ploch má téměř dvakrát tak větší paměťovou náročnost než polygonová síť. Přičemž čím je objekt, který je plochou či spojenou plochou, složitější, tím vyšší je jeho paměťová náročnost. Tudíž se všechny objekty typu plocha převáděly do typu polygonová síť. Navíc to stejné bylo zjištěno i pro exportované soubory ve formátu VRML. Je ale na místě zmínit, že při exportu plochy do formátu VRML je možné buď navolit počet polygonů na stupnici nebo po kliknutí na tlačítko „detailní volby“ mít více možností. Nicméně to nemělo žádný vliv na velikost souboru. Dále bylo zjištěno, že při exportu do formátu VRML, byl výsledný VRML soubor menší, čím méně bylo objektů typu polygonová síť. Tudíž byla snaha pospojovat objekty v jednu polygonovou síť. Ne vždy však tahle možnost byla vyhovující, protože po spojení v jednu síť pak došlo také k přepsání textur jednou texturou, kterou měla v nastavení první označená síť z těch, které se měly dohromady spojit v jednu. Takže se spojovaly jen ty objekty, které měly stejnou texturu a to jen u několika. Vzhledem k požadavku pro spuštění a fungování u ostatních možností je požadavek internetového prohlížeče podporujícího WebGL, od nich bylo upuštěno, protože WebGL se stále vyvíjí a je teprve v počátcích. Navíc zatím jen málo internetových prohlížečů WebGL podporuje a zároveň jsou stabilní. U jiných technologií zase bylo nutné vytvářet modely přímo v jejich editorech (Unity), takže nebyly vybrány. Zajímavým řešením by byla tvorba rostlin a jejich růstu v L-systému, kdy se rostliny ve 3D vygenerují programem Lparser. V programu Lparser je možné při zpracovávání přepisovacích gramatik specifikovat, jakým způsobem bude proveden výstup výsledného trojrozměrného formátu. V závislosti na zvoleném formátu se pak dá, například v programu Blender, dále s takovýmto 3D objektem pracovat a nakonec jej exportovat do jiného formátu, který už může být zobrazen ve webových prohlížečích. Nicméně by to bylo zbytečně komplikované a 3D modely rostlin nakonec jdou lépe modelovat v 3D grafických programech, zvlášť pokud jde o jejich až mikroskopické detaily. Protože je snaha o nepříliš komplikované řešení, byly vybrány zatím nejpoužívanější a nejznámější způsoby zobrazení 3D objektů. Tedy exportem, případně komprimací do formátu VRML nebo X3D, v závislosti na výsledcích testů. Zásadním rozhodnutím bude tedy volba formátu, do kterého se budou exportovat vymodelované rostliny a který bude zobrazován internetovými prohlížeči, protože na tom závisí i použití případného zásuvného modulu pro prohlížeč.
Testování a výběr optimální možnosti
5.1
31
Volba formátu
Program Rhinoceros, ve kterém byly rostliny modelovány, dokáže 3dm soubory exportovat do formátu VRML. Což ovšem není dostatečný důvod pro volbu právě tohohle formátu a to ještě když je tolik jiných možností. Nástupcem formátu VRML, jak už bylo zmíněno výše, je formát X3D. Na oficiálních stránkách konsorcia Web3D se uvádí těchto 10 důvodů, proč bylo VRML nahrazeno a proč se doporučuje místo něj používat právě X3D: „VRML a kompatibilita – Stále je zde klasické VRML kódování (x3dv), které stačilo na většinu nescriptovaných VRML 2 světů, případně jen s malými změnami. Žádná z těchto technologií nebyla ztracena, místo toho se vyvinula v X3D. X3D je kompatibilní s VRML jak jen je to možné, přičemž řeší problémy s kompatibilitou, které přímo vedou k nefunkčnosti prostředí mezi jednotlivými prohlížeči3. XML kódování pro hladkou integraci s jinými aplikacemi – XML se rychle stává předpokladem k začlenění informací v podnikových a vládních databázích. XML totiž zjednodušuje správu, řízení, ověřování a výměnu informací. X3D scény a prostředí fungují podle očekávání mezi různými prohlížeči – hlavní problém s VRML totiž je, že je obtížné vytvořit VRML prostředí, které běží na všech konformních prohlížečích. Což je v zhledem k nedostatku odpovídající specifikace VRML jeho standardní chování. Společné úsilí bylo poskytnout odpovídající specifikaci X3D chování takovým způsobem, že scény a prostředí mohou spolu vzájemně spolupracovat mezi prohlížeči. X3D je komponentizované – X3D je komponentizované což umožňuje specifikaci profilů šité na míru pro konkrétní velký tržní segment (např. CAD, lékařské, vizualizace). Umožňuje také čistší zavádění nových technologií jak je odvětví vyvíjí. X3D tvorba pro všechny prohlížeče je konzistentní a jednodušší – X3D Scene Authoring Interface poskytuje konzistentní funkce pro všechny vnitřní i vnější skriptovací jazyky. Což neplatí u VRML, kde Java a ECMAScript mají velmi odlišné programovací modely. X3D SAI řeší tohle vše specifikací jednotného souboru abstraktních služeb, které pak mohou být mapovány v libovolném programovacím/skriptovacím jazyce tak, aby prostředí fungovala stále bez ohledu na programovací jazyk. Jazykové vazby byly poskytnuty v Javě a ECMAScriptu. Díky tomu je mnohem jednodušší vytvářet X3D. X3D je nabitý funkcemi – velké množství funkcí, požadovaných ve VRML jsou poskytovány v X3D způsobem, který je plně integrován do architektury (stejně tak je standardizovaný). Tak, mnoho ad hoc řešení, která jsou specifická pro dodavatele byla odmítnuta. Můžete myslet na X3D jako "VRML3". X3D je neustále větší a aktualizován – X3D narůstá ve funkčnosti. Předkládaný návrh změn 1 specifikace, která přidává takové věci jako 3D textury a stínovaných jazyků a dává je k dispozici. To také opravuje některé zjištěné anomáZde se myslí prohlížeči souborů VRML či X3D jako samostatných programů i zásuvných modulů do internetových prohlížečů. 3
32
Testování a výběr optimální možnosti
lie v původní specifikaci X3D. Struktura X3D dělá mnohem snadnější aktualizaci v pravidelných intervalech. Je také jednodušší přidávat nové funkce, které se přizpůsobují měnícím se grafikám a komerčním trhům. X3D aplikace mohou být označovány za spolehlivé a předvídatelné – X3D je vyvíjen konsorciem Web3D a poskytuje servis značky pro konformní X3D software. To znamená, že vývoj a přehrávání aplikace (prohlížeče/přehrávače), musí být spolehlivé a předvídatelné. X3D open source konformní aplikace je k dispozici jako vývojářský prostředek – open source implementace téměř všech X3D (Xj3D) je k dispozici a vlastní konformní prohlížeče jako například Flux jsou rovněž vyvíjeny a k dispozici. Na rozdíl od VRML scény, bude X3D scéna fungovat důsledně v souladu s každým certifikovaným prohlížečem. X3D binární formát nabízí šifrování (tj. zabezpečení) a kompresi (tj. rychlosti) – komprese binárního kódování je vyvíjen tak, aby umožňoval šifrování modelu zabezpečení a velmi vysokou kompresi (značně lepší kompresi než gzip používaný ve VRML) v X3D prostředí. Parsování scény a zrychlené nahrávání o 300-500%, jsou samozřejmostí. Všimněte si, že pro všechny prohlížeče je snadné podporovat všechna kódování, protože jediný skutečný rozdíl v provádění, který mezi nimi je, že je vyžadován jiný parser. Kódování ve světě je smíšené, ale za předpokladu, že prohlížeč podporuje všechna použitá kódování. Aktuální X3D prohlížeč od vývojářů je plánován podporovat všechna kódování.“ (Web3D, 2005) Vzhledem k tomu, co bylo napsáno výše, se formát X3D jeví jako lepší volba než VRML. Nicméně jak s VRML, tak i s X3D je ten problém, že není možné už při exportu konvertovat textury přímo do X3D/VRML souboru, takže pak je vždy nutné mít navíc ještě složku s jednotlivými texturami. V jazyce VRML jsou totiž podporovány pouze 3 formy texturování a to: • uložením dat textury, tedy barvy jednotlivých pixelů přímo v souboru formátu VRML (což je ovšem nedostačující), • uložením názvu externího souboru s animací či filmem, • uložením názvu externího obrázku do VRML souboru – zde je problém. Což také v zásadě platí i pro X3D. Uložením pouze názvu externího obrázku do VRML/X3D souboru pak vzniká nutnost mít VRML/X3D soubor ve stejné složce, jako jsou obrázky textur a tedy i značná nepřehlednost a komplikovanost, v podobě více souborů. Nejjednodušší by totiž bylo, kdyby celý 3D objekt i s jeho texturami byl v jednom souboru. I kdyby se do VRML/X3D souboru zapsala celá cesta k obrázku textury, aby se vyřešil problém s tím, že vše musí být ve stejné složce, stále zde bude problém s vícero soubory, tedy s absencí nekomplexnosti. Řešením je volně stáhnutelný program VRMLMerge. Ačkoliv program víceméně bez problémů pracuje s formátem VRML, i když pouze s verzí VRML 2.0, u X3D tomu tak není. Nedokáže totiž do X3D konvertovat i textury, takže v případě X3D souborů problém přetrvává.
Testování a výběr optimální možnosti
33
Jediným řešením pak je program OpTex naprogramován Davidem Sedláčkem, který z použitých textur vytvoří atlas textur, který uloží do jednoho souboru zvlášť. I když textury nejsou přímo konvertovány do souboru X3D, tedy nejsou jeho součástí, tak je to stále zlepšení, protože místo několika souborů textur je zde jen jeden. Protože však není program OpTex nikde dostupný a podle pana Sedláčka není jisté, že by ještě fungoval, bylo od realizace tohoto řešení upuštěno. 5.1.1
Program VrmlMerge 0.4
Program má univerzální použití a může být spuštěn z příkazového řádku, jako okenní aplikace či jako applet v prohlížeči. VRMLMerge má několik funkcí. Dokáže spojit více VRML souborů v jeden, konvertovat VRML soubor do formátu X3D a konvertovat názvy obrázků textur v uzlu typu ImageTexture do PixelTextures. Tedy druhou formu texturování konvertuje v první.
Obr. 12
Ukázka programu VrmlMerge
Ovládání programu, s cílem konvertování textur začíná vložením názvu VRML souboru, do něhož je žádoucí uložit obrázky textur, do pole Input file. Dále do pole Output file se napíše název výsledného souboru, který nemusí existovat. Jako poslední možnost se navolí hodnota v políčku Bits per color (1-8), která nastavuje kolik bitů by mělo být použito pro každou barevnou složku v textuře. Pokud je nastaveno na 8, pak výsledné obrázky nebudou změněny, jedná se o nejvyšší kvalitu. Jako výchozí hodnota je zvolena 5, která je dostačující pro většinu případů. Při nastavení hodnoty na 1 jsou pak výsledkem černobílé textury.
34
Testování a výběr optimální možnosti
Platí zde pravidlo, že čím méně bitů na barvu, tím lepší komprese může být dosáhnuto ve výstupním souboru. Na kompresi se zde využívá Gzip. Testování Protože cílem je jeden soubor s co nejmenší možnou paměťovou náročností, bylo žádoucí provést několik zkušebních testů, než se došlo ke zmíněnému cíli. Jako testovací soubor byl zvolen VRML soubor rostliny s názvem Jednokvítek velekvětý, který má velikost 40,5 MB a devět různých textur jako obrázky ve formátu JPEG, které mají dohromady 295 kB. Testuje se v internetovém prohlížeči Opera verze 11.60 s externím zásuvným modulem Cortona 3D. Při implicitním nastavení Bit per color (1-8) na 5 má soubor po konverzi 94,1 MB, tedy se zvětšil více než dvojnásobně a vykreslování téměř nebylo možné, protože se soubor nechtěl ani otevřít. Téměř okamžitě internetový prohlížeč přestal reagovat a nakonec musel být ukončen. Což nebyly zrovna žádoucí výsledky. Ani nastavení na nižší hodnoty Bit per color (1-8) nepomohlo. Výsledky byly prakticky stejné. Jako dalším možným řešením byla vyzkoušena betaverze VRMLMerge verze 0.5, která podávala výsledky o poznání lepší, což byl i důvod pro jeho používání místo VRMLmerge 0.4. V této verzi je totiž nová možnost, která může být použita při převodu textur a to: Use data protocol. Když se možnost zatrhne, pak jsou textury zpracovány speciálním datovým protokolem používaným v některých VRML prohlížečích, jako Cortona 3D. Z čehož plyne, že bude nutné zvolit výchozí externí zásuvný modul pro zobrazování VRML objektů v internetových prohlížečích. Nevýhodou programu je, že při souboru, který měl víc než 100 MB a spoustu objektů, se konvertování textur neprovedlo. Bylo tudíž nutné mít všechny vymodelované rostliny po exportu ve formátu VRML mít velikostně do 100 MB, na což bylo myšleno už při jejich modelaci.
5.2 Výběr VRML prohlížeče Protože se mají VRML soubory prohlížet pomocí internetových prohlížečů, bude se vybírat mezi zásuvnými moduly pro prohlížeče. Ideální je vybrat takový zásuvný modul, který je psán pro všechny nejčastěji používané webové prohlížeče, kterými jsou: Internet Explorer, Mozilla Firefox, Google Chrom, Opera a pro uživatele počítačů značky Apple s operačními systémy Mac internetový prohlížeč Safari. Navíc následkem použití programu VRMLmerge 0.5 beta a jeho funkce konvertování textur za použití výše zmíněného speciálního datového protokolu je, že ne všechny zásuvné moduly pro prohlížení VRML souborů zobrazí všechny textury správně, protože ne všechny tuhle funkci podporují. Hodnocení bude stejné jako v případě výběru nástrojů pro modelování, tedy způsobem známkování ve škole. Hodnoceno bude kromě bezchybného zobrazování textur také plynulost vykreslování VRML souborů, podpora operačních systémů, kdy podpora Windows musí být samozřejmostí, protože je nejpoužíva-
Testování a výběr optimální možnosti
35
nější a podpora navíc každého dalšího operačního systému zlepšuje známku. A jako poslední bude hodnoceno ovládání programu. Vybíráno bylo mezi BS Contact, Cortona 3D Viewer a FreeWRL. Ostatní nebyly srovnávány, protože Flux Player nebylo možné nainstalovat jako zásuvný modul do vybraného prohlížeče (a to i přesto, že je uváděn jako zásuvný modul, viz předchozí tabulka a její zdroj), vývoj modulu Cosmo Player byl zastaven a nejnovější internetové prohlížeče by mohly mít tudíž problém s tímto zásuvným modulem a OpenVRL je psán pro operační systémy Linux či Mac a pro Windows se pak musí speciálně kompilovat, takže nesplňuje samozřejmou původní podporu operačního systému Windows. Tab. 3
Hodnocení zásuvných modulů
BS Contact
Zásuvné moduly Cortona 3D Viewer
FreeWRL
Zobrazování textur
1
1
3
Plynulost vykreslování
1
2
3
Podpora OS
1
3
1
Podpora webových prohlížečů
2
1
1
Ovládání programu
2
1
2
Cena
3
1
1
1,67
1,50
1,83
Kritéria
Výsledný průměr
Z tabulky je patrné, že nejlépe hodnocen byl zásuvný modul Cortona 3D Viewer. Přestože jeho plynulost vykreslování je horší než u BS Contact. Cortona 3D Viewer je totiž zdarma, na rozdíl od BS Contact, který by byl jinak použit, protože BS Contact je možné stáhnout zdarma pouze jako trial verzi, jinak stojí přes 300 Euro, což je něco přes 7 500 Kč a to studenti, pro které je též tato práce optimalizována, jistě neuvítají, natož aby si jej pořizovali. Pro zobrazování VRML souborů byl zvolen zásuvný modul Cortona 3D Viewer.
36
Modelování a otexturování 3D objektů rostlin ve zvoleném nástroji
6 Modelování a otexturování 3D objektů rostlin ve zvoleném nástroji K modelování rostlin byl vybrán 3d modelovací program Rhinoceros od výrobce McNeel jako plně dostačující pro vymodelování těch nejsložitějších tvarů různých částí rostlin. Právě kvůli různorodosti podob rostlin byly využity různé funkce k jejich vymodelování ve virtuální realitě. Nebylo tedy modelováno pouze za pomoci jedné určité funkce či přídavného modulu, protože by nebyl dostačující. Obvykle tedy bylo nutné kombinovat jednotlivé implicitní funkce či moduly s přídavnými funkcemi. Modelování jednotlivých rostlin začalo modelací listů, následně stonku a nakonec květu. Jako poslední fází pak bylo sestavení jednotlivých částí dohromady, aby vytvořily reálnou podobu květiny a jejich otexturování. Rostliny byly modelovány s ohledem na malou velikost, ale aby zde stále bylo jasně viditelné o jakou rostlinu se jedná, tedy při zachování vysokého stupně detailnosti. Speciálním případem byly kapradiny, jejichž postup modelování je popsán v příslušné podkapitole.
6.1 Modelování listu Jako pomůcka a také jako zajištění jisté podoby s reálnou rostlinou byl využit podkladový obrázek, tedy fotografie listu, jehož hrana byla obkreslena pomocí funkce Lomená čára, jak lze vidět níž na obrázku. Snahou přitom bylo udělat spíše méně spojujících bodů, protože po převodu do polygonové sítě byla výsledkem menší složitost objektu a tudíž menší hustota polygonů, která pak znamená menší náročnost při vykreslování objektu.
Modelování a otexturování 3D objektů rostlin ve zvoleném nástroji
37
Obr. 13 Podkladový obrázek listu Havez česnáčkové s modrou lomenou uzavřenou čárou okolo hrany listu
Po dokreslení obrysu listu pak byla lomená čára převedena na polygonovou síť příslušnou funkcí v Rhinu. Jiný postup byl použit, když se jednalo o tenký list některé rostliny z travin, jejíž fotografie nebyla k dispozici. Pak musel být list nastudován a po té nakreslen pomocí lomených čar, na které byla aplikována funkce Ohnout, tudíž se z čar staly křivky a nemohla z nich být vytvořena polygonová síť. Vytvořila se z nich tedy plocha pomocí příkazu Síť křivek v nabídce Plocha a po nastavení několika parametrů, byla plocha vytvořena. Ta pak mohla být následně převedena na polygonovou síť. Dalším cílem bylo list naohýbat tak, aby působil reálně, protože žádný list rostliny v přírodě není dokonale rovný ve všech rozměrech. Toho bylo dosaženo pomocí funkce Ohnout aplikované několikrát přímo na polygonovou síť. Řapík listu byl udělán pomocí křivky, jako první parametr funkce Potrubí, které bylo vytvořeno s křivkou uprostřed. Při plochém řapíku však byl postup podobný jako při vytváření samotného listu a výsledkem byla polygonová síť.
6.2 Modelování stonku Stonek, obvykle jako silná lodyha byla modelována opět využitím možnosti podkladového obrázku, tedy fotky rostliny, kdy po celé délce stonku i jednotlivých větví byly nakresleny křivky, které byly použity pro vytvoření potrubí.
38
Modelování a otexturování 3D objektů rostlin ve zvoleném nástroji
V rámci optimalizace a požadavků na velikost výsledných VRML souborů však bylo nutné zmenšit počet větví a zmenšit objem květenství (zmenšit počet jednotlivých květů). Stonek i s větvemi byl dále ohnut pomocí již zmiňované funkce Ohnout. Dále využita funkce Otočit 2D, kdy bylo o několik stupňů otočeno s větvemi v pohledech zprava a zepředu, aby rostlina působila reálněji a nabyla dojmu objemu a roztaženosti do prostoru. Od pýří, které patří k vlastnostem některých stonků, bylo nakonec upuštěno, protože velmi zvětšuje složitost modelu a tedy i velikost souboru.
6.3 Modelování květu Největší odlišnost a složitost rostlin se projevuje právě v květu či celém květenství rostlin. Proto při jejich modelování byly použity nejrůznější funkce a jejich kombinace v různém pořadí. Bylo využíváno podkladových obrázků fotek květů, kdy se s jejich pomocí postupně modelovaly části jednoho květu. Kalich byl vytvořen nejčastěji pomocí lomené čáry a z ní pak vytvořené polygonové sítě, podobně jako u listu. Případně byl vyřezán do jiného tělesa pomocí funkce Stříhat nebo bylo použito příkazu Booleovské rozdělení a to mezi dvěma či více objekty.
Obr. 14
Ukázka Booleovského rozdělení tělesa vlevo, pomocí dvou ploch a výsledný efekt
Z takto upravených těles se pak tvořila, po převedení na polygonovou síť, též koruna, ale častěji byly okvětní lístky obkresleny pomocí lomené čáry a pak převedeny na polygonovou síť. Jako problém se objevila modelace chmýří, které vylézalo z koruny a bylo důležitou částí květu. Je samozřejmě možné vytvořit pomocí některé z výše jmenovaných funkcí jedno vlákno chmýří po druhém, či jich vytvořit více různých
Modelování a otexturování 3D objektů rostlin ve zvoleném nástroji
39
a pak je nakopírovat, ale kromě časové náročnosti by se zvýšila i paměťová náročnost. Tedy celkový soubor se mnohonásobně zvětší. Rhinoceros nemá žádnou implicitní funkci pro generování srsti, vlasů či trávy. Řešením však je plugin RhinoHair, který dokáže generovat srst kolem objektu v podobě jedné polygonové sítě. Lze si navolit počet pramenů, jejich délku, tloušťku, modifikaci, gravitaci, typ ohybu a další. Generování jednotlivých pramenů má 3 fáze: • Generování bodů pramenů • Generování pramenů • Generování polygonové sítě Nevýhodou však je, že RhinoHair nelze použít pro polygonovou síť, možné jsou pouze plochy či spojené plochy. Vylepšeným nástupcem RhinoHair je FurGen, nicméně oficiální stránky tvůrců jsou již několik měsíců nedostupné a tak již není k dostání.
6.4 Modelování kapradin a výtrusnic Problémovou částí bylo modelování kapradin. Kapradiny totiž mají složitou stavbu listů – jařma jsou stavěna z dalších menších listů a protože těch listů může být například čtrnáct, násobeno dvaceti jařmi, dostaneme se přes pět set objektů na jednom jediném listu kapradiny. Navíc každý list jednoho listu jařma má ještě výtrusnice, které měly být podle zadavatele mikroskopicky detailní. Protože takových výtrusnic jsou na jednom listu kapradiny stovky až tisíce, znamenalo by to enormní nárůst velikosti souboru, nemluvě o pomalém vykreslování objektu ve výsledném VRML souboru, případnému pádu webového prohlížeče nebo zásuvného modulu, což se u velkých složitých souborů stává obvykle z důvodu nedostatku operační paměti. Řešeno to bylo tak, že na listu kapradiny, tedy jednotlivých jařmech listů, byly výtrusnice pouze naznačeny a to pomocí jednoduchého objektu, který je pouze připomínal. Byl kladen důraz na jejich umístění na listu, protože je to jedna z vlastností, které pomohou ke správnému určení rostliny. Samotný detail výtrusnic byl pak umístěn vedle vymodelovaného trofosporofylu kapradiny a to s popisem, že se jedná právě o mikroskopický detail kupky výtrusnic. Celý List kapradiny byl sestaven pouze z obkreslených jařem, tedy z jednoduchých polygonových sítí, kdy jeden list z jařma byl umístěn hned vedle listu a to v detailnější podobě, přesně tak, jak je na obrázku.
40
Obr. 15
Modelování a otexturování 3D objektů rostlin ve zvoleném nástroji
Ukázka řešení modelu kapradiny
U kapradiny, která má trofofyly a sporofyly zvlášť, bylo zase nutné někam umístit informaci, že se jedná o jednu a tutéž rostlinu i s popisem, který list je který.
Obr. 16
Ukázka řešení modelace kapradiny
6.5 Mapování textur Pod tímto pojmem se rozumí způsob aplikace textury na 3D objekt a je závislý na rozměru textury, přičemž může být jedno, dvou, troj nebo čtyřrozměrná.
Modelování a otexturování 3D objektů rostlin ve zvoleném nástroji
Ukázka mapovací pomůcky v podobě obdélníku označeného kališního lístku
42
Animace 3D objektů
7 Animace 3D objektů Trojrozměrné animace lze vytvářet několika způsoby. Buď příslušným programem nebo zásuvným modulem pro 3D grafický program, nebo „ruční“ postupné ukládání statických snímků a jejich následné sestavení v jednu animaci v některým z animačních programů jako je Sony Vegas nebo třeba i Windows Movie Maker.
7.1
Nástroje na animaci 3D objektů
Animace 3D objektů je v programech na 3D modelování řešena různě. Zatímco některé takové programy používají externích zásuvných modulů, jiné na to mají již implicitně vestavěné propracované nástroje. Příkladem takového programu, ve kterém lze vytvářet animace bez nutnosti instalace externích animačních modulů je program Blender. Program Rhinoceros, ve kterém jsou modelovány rostliny, obsahuje také nástroje pro animaci, nicméně jen pro jednoduchou animaci. Jednoduchou ve smyslu, že nelze s objekty manipulovat tak, aby se ve výsledné animaci jakkoliv hýbaly či měnily. Tedy je zapotřebí, při vytváření složitější propracované animace se zahrnutím nejrůznějších transformací a dalších přeměn animovaných 3D objektů, externího animačního modulu. Takovým modulem je Bongo. Všechny zmíněné možnosti budou v této kapitole rozebrány, aby se nastínily možnosti při výběru animačního nástroje a bylo pochopeno, proč nebyl který nástroj vybrán. 7.1.1
Program Blender a jeho animační možnosti
V programu Blender se animace provádí tzv. klíčováním. „Klíčování pracuje tak, že nastavíte animovaný objekt na políčku 1 (v počítačové animaci se vžil pojem pro políčko frame )do požadované polohy a uložíte ji jako klíč do časové osy. O několik animačních polí dál objekt upravíte zase do jiné polohy (přesunete jej, zarotujete, zvětšíte…) a opět tuto polohu zafixujete uložením klíče do časové přímky. Po zadání všech klíčů program interpolací dopočítá mezipozice mezi klíči a tím je animace hotova. Klíče v Blenderu je možné vkládat buď přímo v 3D okně nebo v tzv. IPO editoru, kde se ovládají i další, pokročilejší animační techniky jako realtive vertex key (touto technikou se dělá např. synchronizace rtů mluvící postavy nebo vlající šaty apod.), cyklické klíčování atd.“ (Černovous, 2000) Není však omezen pouhým jednoduchým klíčováním objektů a jejich tvarů. Umožňuje totiž animovat objekty i pomocí armatur a inverzní kinematiky, kdy armatura „je v podstatě kostra, která umožňuje polohovat a deformovat geometrii, která ji obklopuje. Armatura je tvořena vzájemně propojenou sérií kostí přes parentování a vazby. Armatury jsou nejčastěji používány při animaci postav,
Animace 3D objektů
43
jako pohybovatelná kostra k nastaveni pozice postavy, ale mohou být užitečné v mnoha jiných oblastech.“ (Wiki Blender, 2011) Dále má implementovánu podporu pro fluidní dynamiku, softbodies, různé deformátory, částicové systémy atd. Program Blender nakonec nebyl zvolen a to i díky různým problémům s grafikou v případě integrované grafické karty či starších low-endových grafických karet, které dostatečně nepodporují OpenGL, což pak vede ke snížení výkonu. Dále nebyl vybrán pro svou složitost v ovládání. Blender je sice mocný animační nástroj, nicméně stejně mocný je i zásuvný modul Bongo, který bude níže popsán a tudíž odpadá nutnost přechodu na jiný 3D grafický program. 7.1.2
Animace za použití implicitního animačního nástroje v programu Rhinoceros
Jak již bylo zmíněno výše, v programu Rhinoceros lze vytvářet animace. Nelze však animovat transformace objektů. Lze animovat v podstatě jen pohled, tedy kameru snímající objekt či změny slunce, tedy změny dopadaného světla a měnící se stíny. Jako zajímavá možnost se jeví animace slunce. Studie slunce pohybujícího se po obloze ukazuje, jak se stíny mění v průběhu jednoho dne. Tento typ animace je užitečný, pokud potřebujete vidět, kam budou padat stíny různým umístěním slunečního světla. Architekti, stavební inženýři a urbanisté používají těchto studií k určení, zda nová konstrukce bude blokovat sluneční světlo stávajících struktur a zelených ploch. Studie sluneční animace nepohybuje kamerou, nebo umístěním cíle. Místo toho animuje slunce. Nelze kombinovat studie sluneční animace s jinými typy animací. Je zde možnost také zobrazovat stíny ve stejnou denní dobu během týdne, měsíce či roku. Což je zároveň i dalším typem animace. Dále je možné animovat otáčení o 360 stupňů, kdy se kamera otočí jednou kolem aktuálního cílového bodu. Posledním nastavením animace je animace průletu, kdy kamera proletí nad objektem, sledujíc křivku. Po nahrání a uložení animace do složky se vygeneruje kód v javascriptu, uložen v HTML souboru animace, kdy se jednotlivé snímky v podobě obrázku ve zvoleném formátu, načtou do pole a jsou pak následně přehrávány. HTML soubor je pak otevřen výchozím internetovým prohlížečem s náhledem animace, jednoduchým ovládání a odkazem na oficiální stránky programu Rhinoceros. Rhino neobsahuje nástroje pro sestavení snímků do animačního souboru, ale existují různé produkty třetích stran, které se specializují na tento proces. Právě díky omezenosti animačních možností a absence implicitního nástroje na sestavování snímků do jednoho animovaného souboru v programu Rhinoceros, bylo od této možnosti upuštěno.
44
Animace 3D objektů
7.1.3
Animační modul Bongo 2.0 beta
„Bongo™ je animační zásuvný modul pro program Rhinoceros. Je jednoduchý na ovládání, ale schopný multi-objektového komplexu a zobrazování animace. Je možné rychle a snadno prohlížet a demonstrovat animace v rámci Rhina v jakémkoliv režimu stínování. Je možné pak výslednou animaci prohlížet jako video pomocí náhledů v Rhinu nebo jiným s Rhinem kompatibilním renderovacím modulem. Bongo je integrován kompletně v Rhinu. Objekt i jednotlivé snímky animace jsou upravitelné v okně Rhina pomocí jednoduché „chytni a pusť“ operace. Lze modifikovat objekt a data pohybu bez ztráty cenného času měněním mezi jednotlivými programy.“ (Bongo User’s Guide, 2004) Animační modul Bongo je od stejné firmy jako program Rhinoceros, tedy od Robert McNeel & Associates, takže je v podstatě vyvíjen přímo pro něj. Což je jeden z důvodů, proč byl tento modul zvolen jako nástroj, v němž budou 3D objekty animovány. Dalšími důvody, které jsou převzaty z webových stránek Bongo (2011) pak jsou: • nová výkonná časová osa a editor křivek, • uložení více animací v jednom souboru, • kontrola stovky parametrů pomocí nového keyframe editoru a lepší editor doplňování, • vytváření architektonické animace z pojmenovaných pohledů, • animování mechanických systémů s novým IK enginem, • nové silné příkazy. V součtu je to tedy díky výše zmíněným vylepšením, oproti Bongu verze 1.0. Dále je zde stále kladen důraz na jednoduchost, čímž se vyrovnává jednoduchosti ovládání programu Rhinoceros, ve kterém jsou modelovány i rostliny a je tedy plně dostačující.
7.2 Postup animace ve zvoleném nástroji Zvoleným nástrojem tedy je, jak je zmíněno výše, animační modul Bongo verze 2.0 beta. Animována byla vždy jen konkrétní rostlina, případně speciálně její části. Nebylo tudíž přidáváno na pozadí žádné další objekty, textury jako pozadí či nějaké další efekty, aby se v prostředí animovaná rostlina neztratila a uživatel, který si bude animaci pouštět, nebyl zbytečně rozptylován. Cílem bylo nasnímat model konkrétní rostliny, pomocí pojmenovaných pohledů, což se právě nově vyskytuje v beta verzi programu Bongo. Tato funkce vychází z možnosti pojmenování pohledů v programu Rhinoceros, která se v Rhinu nachází implicitně, takže nebyla dodána až po instalaci Bonga. Modely rostlin byly snímány tak, aby byly detailně zachyceny jejich části, ale i celková podoba modelu rostlin a to z více úhlů.
Animace 3D objektů
45
Po výběru a uložení jednotlivých pohledů způsobem, aby zhruba odpovídal tomu, jak je žádáno, aby rostlina byla nasnímána, se dále zvolí v ovládacím panelu tlačítek Bonga funkce Named views animation, kdy se do následně spuštěného okna přidají pojmenované uložené pohledy a zvolí se počet tzv. tiků. V Bongu je totiž čas měřený libovolnými jednotkami času, nazývanými tiky (anglicky ticks). Tiky mohou představovat jakékoliv množství času, tedy sekundy, milisekundy, minuty či hodiny. Čímž se Bongo odlišuje od jiných animačních modulů, které inklinují k používání snímků, jako měření délky animace. Volbou tiků se určí, po kolika ticích má být změněn pohled, což se po dokončení nastavení možností v okně Named view animtion projeví na časové ose, která má implicitně nastaveno délku 100 tiků, přičemž délka se dá měnit nastavením hodnoty v příslušném políčku umístěné hned pod časovou osou. Jednotlivé pohledy jsou tedy každých 10 až 20 tiků rozestavěny po časové ose a jsou označeny barevnými značkami. V tomhle případě je barevná značka žlutá, což označuje, že se jedná o klíčový snímek pohled. Dalšími barvami, které označují klíčové snímky, jsou pak zelená a červená, kdy zelená označuje začátek a konec animace a červená pak označuje 3D objekty v animaci. Vytvořenou animaci lze spustit tlačítkem Play umístěným pod časovou osou. Žlutě označené klíčové snímky lze pak ještě dále posouvat či editovat. Po všech dalších úpravách a nastaveních klíčových snímků je dalším krokem nechat vyrenderovat animaci. Renderování animace se spouští příslušným tlačítkem Render animation. Po kliknutí se zobrazí okno s několika volbami.
46
Obr. 18
Animace 3D objektů
Bongo Render animation
V části Input se nastavují od kterého do kterého tiku se má začít renderovat a z kterého pohledu. Je zde i možnost udělat animaci jako smyčku. V další části Output se volí renderovací modul a rozlišení, ve kterém budou snímky renderovány. Následující hodnoty v políčcích jako Frames to render, Lenght in secs a dalších jsou klíčové pro konečnou délku animace. Každá animace bude mít délku 10 sekund. Nicméně čím více snímků se má renderovat (Frames to render), tím delší dobu celý proces trvá, samozřejmě v závislosti na použitém hardwaru. Renderování 300 snímků, ze kterých pak byla výsledná 10 sekundová animace trvala zhruba 30 minut a to na notebooku střední třídy starého 3 roky. Nakonec se nastaví už jen adresář, kam se mají jednotlivé snímky renderovat, název snímků a formát snímků, kdy je samozřejmostí volit formát JPEG, díky kterému budou mít soubory menší paměťovou náročnost, což se ale pro člověka viditelně na jejich kvalitě neprojeví. Část Video Output je sice nastavitelná, nicméně nefunkční. Na odstranění této chyby vývojáři pracují. Takže seskládání snímků do videa se pak dělá spuštěním souboru aviwriter.exe, který je umístěn ve složce Bongo 2.0.
Animace 3D objektů
Obr. 19
47
Bongo Video Encoder
Po nastavení cesty k zdrojovým již vyrenderovaným snímkům z předchozího kroku se dále může nastavit od kterého snímku se má sestavovat. Cílový soubor, jeho cesta i název, se pak nastaví automaticky, po zadání prvního zdrojového souboru z celé sekvence. Po kliknutí na Compression options se zvolí jeden z načtených video kodeků, kdy má každý různé možnosti nastavení, na jejímž základě se pak vytvoří soubor ve zvoleném formátu.
7.3 Volba formátu Protože je žádoucí mít velikost souborů co nejmenší při zachování jisté kvality animace, bylo dalším logickým krokem testování jednotlivých formátů a k nim se pojících kodeků. Kromě AVI formátu, který je vidět na obrázku, je zde ještě možné zvolit formát MPG, WMV a OGV. Z vyjmenovaných videoformátů jsou obecně nejpoužívanějšími a nejpodporovanějšími AVI a MPG, proto bylo testování a srovnání zaměřeno právě na tyto dva formáty. Testováno bylo na 300 snímcích formátu JPEG a nastavení u jednotlivých kodeků bylo implicitní, tedy nebylo měněno.
48
Animace 3D objektů
Tab. 4
Porovnání AVI a MPG formátu AVI
Video kodek
Výsledná velikost souboru (v MB)
MPG Video kodek
Výsledná velikost souboru (v MB)
340,0 MPEG-1 1,38 Bez komprese 3,8 MPEG-2 nezdařilo se Kodek Cinepak 169,0 VCD 1,38 Kodek Intel IYUV 1,4 nezdařilo se Microsoft Video 1 SVCD 0,6 DVD nezdařilo se Xvid MPEG-4 340,0 Microsoft RLE 340,0 Microsoft YUV 340,0 Toshiba YUV Hodnoty jsou zaokrouhleny. Hodnota „nezdařilo se“ označuje, že se nezdařilo sestavení snímků do jednoho souboru za použít konkrétního video kodeku.
Jak je vidět na základě údajů z tabulky, kodek Xvid MPEG-4 je jasnou volbou pro formát, který bude použit pro animaci. Má totiž nejmenší paměťovou náročnost, pouze 0,6 MB a zároveň nejlepší obrazovou kvalitu. Konverze se na výsledném videu vizuálně pro lidské oko v podstatě neprojevila. Takže výsledné snímky, které byly vyrenderované, se sestavily do videa pomocí video kodeku Xvid MPEG-4. Aby video bylo přehratelné také ve webovém prohlížeči, muselo by být buď ideálně překonvertováno na formát flash a nebo jako odkaz v kódu (např. HTML, JavaSkriptu).
7.4 Možnosti zobrazení videa v internetových prohlížečích Možností je několik, zde budou uvedeny ty lehčí na provedení a častěji používané. Video jako odkaz v kódu je závislé na použitém kodeku (Xvid MPEG-4). Proto bylo upuštěno od možnosti přidání přímého odkazu na AVI soubor. Přehrávat takovéto video je však možné po provedení konverze do formátu DivX/AVI nebo MKV, což lze udělat pomocí DivX Plus Converter. Takový soubor je pak možné přehrát přímo ve webovém prohlížeči zásuvným modulem DivX Web Player, který je dostupný z webové stránky: http://www.divx.com/en/software/divx-plus/web-player. Stačí nechat vygenerovat HTML kód, který může být pak vložen do kódu webové stránky. Přehrávač dokáže přehrávat i další formáty. Ukázka vygenerovaného kódu: No video? Download the DivX Plus Web Player.
Lepší však je použít formát flash a to z toho důvodu, že dnes již většina internetových stránek vyžaduje zásuvné moduly či programy pro přehrávání formátu flash, tedy flash animací a to přímo ve webovém prohlížeči. Tato možnost byla nakonec i realizována. AVI soubor se musí nechat konvertovat do formátu flash na což je potřeba vybrat vhodný program. Flash video je pak přehratelné pomocí zásuvného modulu Adobe Flash player. Protože je ale formát flash široce rozšířen mezi uživateli, předpokládá se, že takový zásuvný modul vlastní většina uživatelů. Na internetu je spousta kvalitních programů pro konvertování AVI formátu na formát flash, mají však vysokou cenu. Cílem bylo najít program na konvertování videa, který bude zdarma. Takovým programem je Quick Media Converter od CocoonSoftware, který byl použit pro konverzi AVI formátu do formátu flash. Videa jsou tímto připravena pro použití ve webovém prohlížeči.
50
Závěr
8 Závěr Zde navržená řešení se dají použít i na jiné objekty než rostliny. S řešením se dá i dále pracovat, uzpůsobovat ho budoucím potřebám, protože formát VRML je lehce převoditelný do formátu X3D, o kterém se všeobecně předpokládá (i přes jeho nynější nedostatky a absenci potřebných programů na řešení některých v této práci popsaných problémů), že úplně nahradí zastaralé, i když stále hojně používané, VRML. Pro snadnější konverzi z VRML formátu do X3D byly přidány do obsahu přiloženého DVD i soubory textur zvlášť, protože se do budoucna obecně předpokládá, že X3D případně úplně nový formát nahradí VRML. Popsané možnosti zobrazení 3D objektů ve webových prohlížečích dávají přehled o těch nejzajímavějších technologiích a poukazují na fakt, že třetí rozměr je to, co si dnešní společnost žádá, protože se kromě počítačů dostal také už i do našich televizí. Též je zde vidět rychlý vývoj v této oblasti, kdy se nové technologie zobrazování 3D objektů v prohlížečích objevují takřka ze dne na den, kdy se ještě nestačilo vymyslet dostatečné množství různých programů na splnění všech možných přání uživatelů u těch starších technologií a už se zde vyvíjí něco nového, jdoucí jiným směrem, nabízející nové možnosti. Příkladem byl právě formát X3D, popisující virtuální realitu pomocí XML, kdy dnes už se virtuální realita pro webové prohlížeče tvoří pomocí grafické knihovny WebGL, tedy není potřeba žádných externích zásuvných modulů.
8.1 Přínos práce Práce má pro mě velký přínos jak z hlediska informačního tak i z hlediska praxe. Informačního, protože mi dala celkem velký přehled o dnešních možnostech interaktivní prezentace 3D modelů rostlin, ale i grafických nástrojích na modelování rostlin. Praxe, protože posunula mé modelovací možnosti až na samou hranici a nakonec je posouvala ještě i za ni, protože vytvořit některé složité rostliny se zdálo být na první pohled nemožné. Vytvořené modely a animace rostlin budou použity pro výuku a to jak na přednáškách pro přednášející, tak i pro studenty, kteří si tak budou moct prohlédnout rostlinu i ve třetím rozměru, aniž by museli jezdit na místa výskytu konkrétních rostlin. Navíc studentům pomohou pochopit stavbu rostlin, jejich detailní, v některých případech až mikroskopickou podobu.
8.2 Možnosti dalšího rozšíření práce Zde uvedeným postupem lze vytvořit i další rostliny, práce se tak dá rozšířit o další modely rostlin. Ty by pak mohly být zasazeny do vymodelované trojrozměrné scény, která by odpovídala prostředí, kde se rostliny běžně vyskytují. Tedy například les či louku i s pozadím odpovídající krajiny.
Závěr
51
Studenti by pak měli možnost se projít virtuální krajinou sestávající z rostlin, které v ní běžně rostou. Mohl by se přidat i speciální testový mód, ve kterém by studenti jednotlivé rostliny museli správně poznávat a jejich typy na název konkrétní rostliny by byl psán přímo do aplikace, která by následně vyhodnotila správnost. Dalším možným rozšířením by byla animace růstu rostlin, kdy již vymodelované rostliny by sloužily jako podklad pro takovou animaci.
OBČANSKÉ SDRUŽENÍ VE ŠKOLE I MIMO NI. Praktický průvodce mikrosvětem I.: 54. Kapraďorosty V. – výtrusnice a výtrusy kapradin. [online]. 2010 [cit. 2011-12-23]. Dostupné z: . OPENVRML. Source distribution. [online]. 2009 [cit. 2011-12-23]. Dostupné z: . PROKHORCHUK, S. NgPlant – Open Source plant modeling suite. [online]. 2007 [cit. 2011-12-23]. Dostupné z: . ROBERT MCNEEL & ASSOCIATES. Animation. [online]. 2011 [cit. 2011-12-23]. Dostupné z: . ROBERT MCNEEL & ASSOCIATES. Flamingo – Raytracing and Radiosity for Rhino. [online]. 2008 [cit. 2011-12-23]. Dostupné z: . ROBERT MCNEEL & ASSOCIATES. Rhinoceros – modeling tools for designers. [online]. 2010 [cit. 2011-12-23]. Dostupné z: . ROBERT MCNEEL & ASSOCIATES AND THE LE BIHAN. Animation for Designers: User’s Guide . [online]. 2004 [cit. 2011-12-23]. Dostupné z: . SEDLÁČEK, D. Optimalizace textur. Praha, 2006. Dostupné z: . Diplomová práce. Ceské vysoké ucení technické v Praze Fakulta elektrotechnická. Vedoucí práce Doc. Ing. Jirí Žára, CSc. TIŠNOVSKÝ, P. Grafické formáty: Texturování ve VRML. [online]. 2007 [cit. 2011-12-23]. Dostupné z: . TIŠNOVSKÝ, P. Grafické formáty: XML 3D = X3D. [online]. 2008 [cit. 201112-23]. Dostupné z: . TIŠNOVSKÝ, P. Grafické formáty: VRML: jazyk pro popis virtuální reality. [online]. 2007 [cit. 2011-12-23]. Dostupné z: . TIŠNOVSKÝ, P. Interaktivní editor afinních transformací . Brno, 1999. Dostupné z: Diplomový projekt ― technická zpráva . VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ . Vedoucí práce Prof. Ing. Ivo Serba, Csc.