• No results found

Interaktivní 3D-model budovy CIT Interaktiv 3D-model of building CIT

N/A
N/A
Protected

Academic year: 2022

Share "Interaktivní 3D-model budovy CIT Interaktiv 3D-model of building CIT"

Copied!
55
0
0

Loading.... (view fulltext now)

Full text

(1)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta mechatroniky a mezioborových inženýrských studií

Studijní program: B 2612 ELEKTROTECHNIKA A INFORMATIKA Studijní obor: Elektronické informační a řídící systémy

Interaktivní 3D-model budovy CIT Interaktiv 3D-model of building CIT

Bakalářská práce

Autor: Lukáš Burda

Vedoucí BP práce: RNDr. Klára Císařová Konzultant: RNDr. Klára Císařová

V Liberci dne: 10.5.2007

(2)

Prohlášení:

Byl(a) jsem seznámen(a), že na mou bakalářskou práci se plně vztahuje zákon č.

121/2000 o právu autorském, zejména § 60 (školní dílo).

Beru na vědomí, že TUL má právo na uzavření licenční smlouvy na užití mé BP a prohlašuji, že s o u h l a s í m s případným užitím mě bakalářské práce (prodej, zapůjčení apod.).

Jsem si vědom(a) toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem TUL, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených univerzitou na vytvoření díla (až do jejich skutečné výše).

Bakalářskou práci jsem vypracoval(a) samostatně s použitím uvedené literatury a na základě konzultací s vedoucím diplomové práce a konzultantem.

Datum:

Podpis:

(3)

Poděkování:

Na tomto místě bych rád poděkoval všem co se podíleli na tvorbě této práce, především pak vedoucí práce RNDr. Kláře Císařové za konzultace a poskytnuté materiály a Ing. Arch. Vladimírovi Baldovi taktéž za konzultace a poskytnuté podklady.

(4)

Anotace:

Tato práce by měla být nezávazně technickou zprávou, postihující problematiku návrhu a zpracování webové prezentace, poskytující lidem možnost navigace v budově Informačního Centra TUL. Ponoříme se v ní do základů 3D grafiky jak teoreticky, tak i prakticky. Popíšeme si základní matematické principy jejího zobrazení a zabrousíme do moderního světa 3D software.

Zdůvodníme výběr vhodného software pro tvorbu dané prezentace a popíšeme si jeho teoretické základy a v závislosti na nich i praktické postupy tvorby 3D modelu, jeho texturování, animování a renderování. Popíšeme zde i některé mé osobní techniky zjednodušující pracovní postupy.

Přiblížíme také svět moderního trendu aplikací na bázi Flash programu. Zmíníme se o jeho základech, objektech, způsobu animací a objektově orientovanému programování v jazyce Actionscript. Následně projdeme i mé praktické zkušenosti při tvorbě interaktivní prezentace zahrnující design, animace a programování.

Přečtením této bakalářské práce získáte základní znalosti z dnes velmi populárních oblastí grafiky CG (cyber graphics).

Annotation:

This bachelor should not be strict technical report, but some kind of recipe how to build a fully functional interactive web presentation giving possible visitors some navigation of Information Center TUL before they even go there. We will go through basics of 3D graphics both theoretical and practical. We will describe principals of its mathematics and stray into the world of modern 3D graphics.

We will give reasons for picking appropriate software package and describe its theoretical principals and depending on it even practical approach of building 3D model, its texturing, animating and rendering. We will also explain my own techniques making workflow easier.

We will zoom in modern world of Flash based applications. We will mention some basics, objects, ways of animation and object oriented programming with Flash Action Script.

After that we will go though my practical experiences with creating interactive presentation including design, animation and programming.

By reading of this bachelor you should acquire necessary knowledge about todays most popular parts of cyber graphics.

(5)

Poděkování: _______________________________________________________________ 3 Anotace: __________________________________________________________________ 4 Annotation:________________________________________________________________ 4 Úvod _____________________________________________________________________ 8 1 Základy zobrazení a prezentace 3D na počítači _______________________________ 9 1.1 Z reálného 3D do 2D _____________________________________________________ 9

1.1.1 Pravoúhlé rovnoběžné zobrazení__________________________________________________ 9 1.1.2 Axonometrie _________________________________________________________________ 9 1.1.3 Sférické mapování_____________________________________________________________ 9 1.1.4 Azimutální zobrazení __________________________________________________________ 9

1.2 Nejčastější reprezentace 3D modelu na počítači ______________________________ 10 1.2.1 Plošková (polygonální) reprezentace _____________________________________________ 10 1.2.2 NURBS (non uniform rational B-spline) plochy_____________________________________ 11 1.3 Vývojové nástroje pro 3D prezentace ______________________________________ 11 1.4 Volba vhodného software ________________________________________________ 12

2 Maya™ teoretický základ________________________________________________ 13 2.1 Principy modelování ____________________________________________________ 13

2.1.1 NURBS ____________________________________________________________________ 13 2.1.2 Polygons ___________________________________________________________________ 14 2.1.3 Subdivisions ________________________________________________________________ 16

2.2 Materiály a textury _____________________________________________________ 16 2.2.1 Materiály v Maye ____________________________________________________________ 16 2.2.2 Textury ____________________________________________________________________ 17 2.2.3 UV mapování _______________________________________________________________ 17

2.3 Renderování v Maye ____________________________________________________ 18 2.3.1 Osvětlení ___________________________________________________________________ 18 2.3.2 Maya software renderer________________________________________________________ 19 2.3.3 Mental Ray renderer __________________________________________________________ 19 2.4 Základy animace v Maye_________________________________________________ 20

3 Maya™ praxe při vytváření, texturování, renderování a animování budovy IC ____ 20 3.1 Modelování a s tím spojené problémy a zjištění ______________________________ 20

3.1.1 Zdroje a podklady ____________________________________________________________ 20 3.1.2 Tvorba modelu budovy IC _____________________________________________________ 21

(6)

3.1.3 Model areálu Husova Technické univerzity v Liberci ________________________________ 21 3.1.4 Interiéry a jiné vybavení _______________________________________________________ 22

3.2 Materiály a textury _____________________________________________________ 23 3.2.1 Aplikované standardní materiály_________________________________________________ 23 3.2.2 Textury, jejich vytváření a obecná problematika ____________________________________ 24 3.2.2.1 Komplikace s texturami jejich řešení_________________________________________ 24 3.2.2.2 Textura se švy a bez švů __________________________________________________ 24 3.2.2.3 Rozměry textur vzhledem k animaci _________________________________________ 25

3.3 Rendering _____________________________________________________________ 26 3.3.1 Osvětlení ___________________________________________________________________ 26 3.3.1.1 Venkovní osvětlení ______________________________________________________ 26 3.3.1.2 Interiérové osvětlení _____________________________________________________ 26 3.3.2 Zvolený renderovací engine ____________________________________________________ 28

3.4 Způsoby animace _______________________________________________________ 28 3.4.1 Polohování kamery a modifikace dráhy ___________________________________________ 28 3.4.2 Aplikace na Motion Path_______________________________________________________ 29

4 Flash™ teoretický základ________________________________________________ 29 4.1 Objekty a grafika _______________________________________________________ 29

4.1.1 Vektory a bitmapy____________________________________________________________ 29 4.1.2 Symboly ve Flashi____________________________________________________________ 30 4.1.2.1 Movie Clip _____________________________________________________________ 31 4.1.2.2 Button ________________________________________________________________ 31 4.1.2.3 Statická grafika (graphics) _________________________________________________ 31 4.1.2.4 Instance pojmenování symbolů _____________________________________________ 31

4.2 Základy animace _______________________________________________________ 32 4.2.1 Frame by Frame _____________________________________________________________ 32 4.2.2 Motion Tween _______________________________________________________________ 32 4.2.3 Shape tween ________________________________________________________________ 33 4.2.4 Rychlost přehrávání animací ____________________________________________________ 33

4.3 Actionscript ___________________________________________________________ 34 4.3.1 časové osy __________________________________________________________________ 35 4.3.2 Adresování _________________________________________________________________ 35 4.3.3 Ovladače událostí ____________________________________________________________ 35 4.3.4 Základní datové typy__________________________________________________________ 36 4.3.5 Vytváření proměnných ________________________________________________________ 36 4.3.6 Actionscript operátory_________________________________________________________ 36 4.3.7 Základní příkazy Actionscriptu __________________________________________________ 37

(7)

4.3.7.1 Příkaz if, if...else. ________________________________________________________ 37 4.3.7.2 Příkaz pro cyklické opakování skriptu for _____________________________________ 37 4.3.8 Vytváření funkcí _____________________________________________________________ 37

5 Flash™ vlastní tvorba, kompilace, animace a programování aplikace ____________ 38 5.1 Velikost aplikace a uživatelská podpora ____________________________________ 38 5.2 Prostředí a grafika prezentace ____________________________________________ 39

5.3 Stavba aplikace_________________________________________________________ 39 5.3.1 Plánování prezentace__________________________________________________________ 39 5.3.2 Noření a rozložení časových os__________________________________________________ 40 5.4 Způsoby animace _______________________________________________________ 40 5.5 Způsob programování ___________________________________________________ 41

5.6 Bližší zoom na jednotlivé části ____________________________________________ 42 5.6.1 Hlavní prostředí a základ prezentace______________________________________________ 42 5.6.2 IC úvod ____________________________________________________________________ 45 5.6.3 Zjistit dostupné místnosti ______________________________________________________ 47 5.6.4 Navigace v budově ___________________________________________________________ 49 5.6.4.1 Zpracování patra ________________________________________________________ 51

Závěr ____________________________________________________________________ 53 Seznam použité literatury a zdrojů ____________________________________________ 54 Obrázkový seznam _________________________________________________________ 54

(8)

Úvod

Studuji na Technické univerzitě již nějaký ten rok a tak si dovolím tvrdit, že znám její školní areál poměrně dobře. Byl jsem ve všech univerzitních budovách a téměř vždy našel místo kam jsem mířil. Slovo „téměř“ používám záměrně, protože v jedné z budov jsem se ztrácel velmi často. V budově „A“ však bylo možné zabloudit velmi snadno. Nejsem jediný student, který potvrdí, že nalézt danou učebnu v nepřehledném číslování, které často vypadá jako pro jinou z budov, je skoro nadlidský úkol. A právě tato situace mě vedla k myšlence vytvoření jakéhosi navigačního systému, který pomůže začínajícím, ale i již delší dobu studujícím studentům nalézt místnost, kterou hledají. Navíc se dá říct, že něco takového by mohlo zviditelnit právě tuto budovu a s ní související katedry.

Návrh této navigace prošel velmi dobře a tak jsem začal uvažovat nad vlastní realizací.

Z vlastní zkušenosti jsem již měl rozhodnuto jaký software bych použil a tím pádem věděl co jsem v rámci mých znalostí schopen vytvořit. Samotná navigace byla od začátku zamýšlena jako 3D průlety, které řeknou mnohem víc než všemožné půdorysy, fotky a jiné standardní způsoby navádění lidí. V této chvíli začaly hrát velmi důležitou roli materiály a podklady, které byly k dispozici.

Budova „A“ má vzhledem k mé práci svoje klady a zápory. Jednoznačné klady jsou na první pohled jasné stavební materiály, vybavení chodeb a interiérů, díky nimž je možné vytvořit fotorealistické prostředí a dát lidem k dispozici možnost zapamatování cesty podle typických interiérových prvků. Naopak technické výkresy jsou jasnou nevýhodou. Nemožnost vytvořit rozměrově přesný 3D model ve výsledku vytvoří nesrovnalosti v celé struktuře a tím přispěje ke značnému ztížení práce.

Při další konzultaci se naskytla vynikající alternativa a to právě vznikající budova Informačního Centra (dále již IC). To s sebou neslo nesporné výhody kvalitních podkladů včetně hrubých modelů a přínosných konzultací přímo s architekty. Na druhé straně budova nebyla zdaleka hotova, takže chyběla její interiérová stránka. Rozhodnutí však bylo zřejmé.

Zvolil jsem tuto alternativu nejen kvůli výhodám zmíněným výše, ale navíc kvůli tomu, že budova IC bude sdružovat kompletní vedení univerzity a stane se jasným centrem TUL.

Interaktivní 3D model CIT se může stát vhodnou pomůckou pro ty, kteří se tam chystají, ale i pro lidi, kteří se rádi podívají jak vypadá reálné centrum dění na univerzitě.

(9)

1 Základy zobrazení a prezentace 3D na počítači

1.1 Z reálného 3D do 2D

Každý 3D program musí řešit převod třírozměrné „reality“ do dvourozměrných souřadnic obrazovky. K tomu existuje množství nejrůznějších algoritmů, podle účelu a úhlu záběru. Každý z nich zkresluje, a každý z nich zkresluje jinak.

1.1.1 Pravoúhlé rovnoběžné zobrazení

Velmi často se užívá pro strojírenské výkresy, je velmi jednoduché při vykreslování pravoúhlých objektů orientovaných podle os. Při jiné orientaci však dává zkreslené objekty.

1.1.2 Axonometrie

Axonometrie je zobrazení, které zachovává přímky. V rovnoběžné axonometrii je definován směr všech tří os a poměr zkrácení délek při vynášení. Pozice se vypočte sečtením hodnot pro jednotlivé souřadnice. Protože toto zobrazení nemá perspektivu, existuje též úběžná axonometrie. Ta navíc definuje 3 úběžné body, ke kterým se sbíhají rovnoběžky ve směrech os. Alespoň dva úběžné body bývají většinou mimo obrázek. Axonometrie ale zkresluje při větších úhlech záběru. Pravoúhlé rovnoběžné zobrazení je tedy speciálním případem rovnoběžné axonometrie.

1.1.3 Sférické mapování

Nejprve se vypočítají všechny souřadnice objektů z místa pozorovatele, ty se namapují na jednotkovou kouli a z ní posléze na rovinu. Mapování obecně nezachovává přímky.

1.1.4 Azimutální zobrazení

Je nejběžnějším typem mapování. Při něm se mapuje povrch koule na tečnou plochu.

Podle zachování určité veličiny se dělí na stejnoploché, stejnoúhlé a se zachováním délky na polednicích.

(10)

Dalšími azimutálními zobrazeními jsou projektivní zobrazení. Nejjednodušším z nich je přímková projekce. V ní se obraz z koule promítá přímkami na rovinu, a proto je omezená na zobrazovací úhly silně pod 180°. Projekce mají velký význam, neboť se jedná o přirozené zobrazovací metody většiny fotoaparátů (různé objektivy mohou používat různé typy projekce). V 3D grafice patří vedle axonometrie mezi nejběžnější.

Existuje spousta jiných druhů, ale ty se v počítačové 3D grafice většinou nepoužívají.

1.2 Nejčastější reprezentace 3D modelu na počítači

1.2.1 Plošková (polygonální) reprezentace

Nejčastěji používaná reprezentace objektů v počítačové grafice je právě polygonální, jejíž základem je většinou trojúhelník, i když dnešní standardy pro zobrazení prostorových dat (OpenGL, Direkt 3D, PHIGS, GKS 3D) podporují i čtyřúhelníky a mnohoúhelníky. Avšak při zobrazování mnohoúhelníků je třeba určovat jejich konvexitu a tudíž se zvětšují výpočetní časy. Trojúhelníkové zobrazení je také výhodné, protože ho podporuje většina současného technického vybavení počítačů.

Pro samotné modelování však není polygonální reprezentace příliš výhodná a z toho důvodu využívá většina modelovacích softwarů jako standart jinou metodu a to většinou NURBS a sítě trojúhelníků. NURBS reprezentace vlastně využívá trojúhelníkovou síť jako výstupní. Model vytvořený z křivek se převede na trojúhelníky během renderování. Moderní 3D softwary umožňují tzv. zjemňování sítě, které zvětší množství detailů, ale podstatně prodlouží renderovací časy.

Polygony jsou nejčastěji reprezentovány svými vrcholy (vertex), jejichž pořadí a tudíž i pořadí stran (edge) určuje natočení jednotlivých plošek. Důležitý je taky směr normálového na plošku, protože pomocí něho se určuje osvětlení, barva, průhlednost a jiné.

Celkově platí, že polygonální reprezentace snižuje množství přenášených dat a značně ovlivňuje rychlost práce a odezvy systému. Využívá se tudíž v aplikacích náročných na čas jako jsou počítačové hry, virtuální realita a jiné.

(11)

1.2.2 NURBS (non uniform rational B-spline) plochy

NURBS plochy jsou všeobecně nejvyužívanější modelovací metodou. Základní vlastnosti vycházejí z vlastností parametrických ploch. Na parametrickou plochu lze pohlížet jako na množinu vzniklou tažením křivky po nějaké trajektorii. Tato křivka může během svého pohybu měnit tvar. Rovnice parametrické plochy je závislá na dvou parametrech u a v a kde rovnice pro jednotlivé body je definována jako Q(u,v) = [x(u,v),y(u,v),z(u,v)]. V této rovnici jsou x(u,v), y(u,v) a z(u,v) funkce dvou parametrů u є <0,1> a v = <0,1> . NURBS plochy přímo vycházejí z B-spline ploch, která jsou tvořeny na základě B-spline křivek, ale takto hluboko v této práci zacházet nebudeme. Tyto plochy jsou podřízené řídícím bodům.

Změna jednoho takového bodu způsobí změnu v celé sítí.

Výhodou NURBS, jež je dnes absolutní standart je, že z hlediska implementace se používají jednotné datové struktury a stejně tak i algoritmy. Další výhodou těchto ploch je invariantnost k lineární transformaci a díky racionalitě navíc i k perspektivní projekci. Jinými slovy řečeno, plochu, jejíž každý bod zobrazujeme ve výpočetně náročné perspektivní projekci, můžeme získat tak, že nejprve podrobíme perspektivní projekci její řídící body a potom vygenerujeme plochu bez nutnosti dále transformovat její body.

Logickou nevýhodou NURBS je složitý matematický popis. Pro jednouchý objekt jako je například koule je zapotřebí velké množství dat. NURBS plocha je definována následující rovnicí:

) ( ) (

) ( ) ) (

, (

, ,

0 0

, ,

, 0 0

v N u B W

v N u B P v w

u Q

q j i j i m

j n i

q j i j i j i m

j n i

=

=

=

=

Σ Σ

Σ

= Σ

kde wi,j je váha bodu (homogenní souřadnice) Pi,j řídícího polynomu P, n a m je počet řídících bodů, p a q jsou stupně polynomů a konečně Ni,q(u), Nj,q(u) jsou normalizované B-spline bázové funkce.

1.3 Vývojové nástroje pro 3D prezentace

V dnešní době si, co se týče 3D programů a jednotlivých nároků na ně, přijde na své téměř každý. S počítačovou revolucí vstoupilo na scénu obrovské množství vývojářských společností zabývajících se právě 3D. Různorodost těchto produktů nezná mezí, a tak se objevují aplikace, které jsou schopny vytvořit vše co si uživatel zamane. Počínaje strojírenskými součástkami a složitými fotorealistickými animacemi konče. V této části bych rád uvedl stručný přehled současných 3d nástrojů.

(12)

Velikého významu se pyšní právě technické aplikace, které se dělí na spoustu podkategorií a mezi něž patří všeobecně známé CAD aplikace. Vyjmenovat všechny možné a nemožné produkty by bylo nad naše síly. Uživatelé mají na výběr Autodesk AutoCAD, ArchiCAD od společnosti Grafisoft, CADCON, Autodesk Architectural Desktop, aplikace SolidWorks a Solid Edge pro strojírenské účely a spousty jiných. Je jenom na uživateli, který z nich si vybere, aby nejlépe splnil jeho požadavky.

Druhou velmi rozsáhlou skupinou jsou „umělecké“ 3D programy, které jsou i mě osobně bližší. Na trhu jsou aplikace volně dostupné i finančně velmi nákladné. Každý tento software dává k dispozici určité nástroje a jedině koncový zákazník určuje, zda – li mu budou vyhovovat nebo ne. Jak jsem se již zmínil dříve, i tady je velké množství různých programů splňujících určité nároky. Rozhodně standardem je NURBS modelování, dále Polygony a ty nejvyspělejší aplikace dávají k dispozici i dnes velmi populární SubD modelování.

Pro začínající umělce v oblasti 3D je rozhodně vhodná volba (pokud ovšem nezvolí jinak) Blender 3D, který je zdarma ke stažení z jeho domovských stránek. Dále je k dispozici jednoduchý, dle mé osobní zkušenosti, program Rhinoceros, který dává k dispozici standardní NURBS a základní renderovací možnosti. Mezi nejmodernější a nejpopulárnější 3D software dnes bezesporu patří Autodesk 3Ds Max, Autodesk Maya, Cinema 4D, Lightwave 3D, a další.

Tento software v obě slučuje kvalitní modelovací nástroje, renderovací nástroje, různé fyzikální simulátory a v neposlední řadě animační nástroje.

1.4 Volba vhodného software

Zvolit si vhodný software pro vytvoření aplikace Interaktivní 3D model CIT bylo poměrně jednoduché. Mé požadavky byly následující. Kvalitní modelovací možnosti jako je NURBS modelování pro vytváření hladkých povrchů, podpora SubDivisions modelování pro dosažení organických tvarů a samozřejmě plná podpora polygonů, které jsou nejvhodnější pro vytváření architektury a jejích prvků. Mezi mé hlavní favority, co se tohoto týče, patří 3Ds Max, Maya a Cinema 4D.

Silný důraz jsem kladl také na renderovací engine. Každý software dává k dispozici různé možnosti, ale já hledal takový, který mě dovolí vytvářet úžasně realistické obrázky za krátké časy,i když, jak se dozvíte později, to s nimi nebylo zrovna jednoduché. K mnoha programům lze dokonce renderovací engine stáhnout dodatečně. Opět nesporně kvalitní rendering mají 3Ds Max, Maya, Cinema 4D a také Lightwave.

(13)

Animace byla taktéž stěžejní záležitost. Vezmu-li v úvahu, že každý z výše jmenovaných programů má v sobě zakomponovaný slušný animační možnosti, tak je jeden, který vyniká nad všechny ostatní (upozorňuji,že je to jenom můj osobní názor) a to právě Autodesk Maya. Mnoho předních filmových tvůrců využívá právě tento program a tím nechci říct, že to je jediný důvod, proč upřednostňuji právě tuto aplikaci.

Z několika předešlých odstavců je jasné, kterým směrem se pohybuje moje uvažování.

Zkušenosti mám téměř se všemi výše zmíněnými programy, ale podle moji osobní praxe a požadavků jednoznačně vede Maya. Poskytuje propracovaný systém modelování, jeho polygonální modelování je neuvěřitelné intuitivní, subdivize dávají ohromné výsledky, renderovací enginy jsou hned 4 k dispozici a každý z nich má své přednosti, animace jsou jednoduché a snadno přístupné.

Vybrat vhodné 3D je jedna věc, ale v tuto chvíli se nabízela otázka, v čem zkompilovat a naprogramovat samotnou navigaci? Já osobně považuji objektové programování za uživatelsky nejpřístupnější a vzhledem k předchozím zkušenostem jsem okamžitě sáhl po aplikaci Adobe Flash.

2 Maya™ teoretický základ

2.1 Principy modelování

Jak jsem již zmínil dříve, Maya disponuje třemi základními modelovacími prostředky.

Každá technika má své klady a zápory a přesně tyto vlastnosti zevrubně přiblízíme v následujících podkapitolách.

2.1.1 NURBS

Tato technika se hodí v místech, kde je potřeba vytvořit hladké tvary. Tyto hladké plochy bývají často používané jako vhodný základ i pro polygonální modely, do kterých se je možné je transformovat, což je velmi užitečná funkce.

NURBS plochy se transformují a upravují pomocí několika možností, jak je ukázáno na obr.1. Tyto možnosti se v Maye zobrazují při přidržení pravého tlačítka myši na objektem,který chce uživatel měnit.

(14)

obr. 1 NURBS komponenty

Vrcholy (Control Vertex) jsou vlastně jediné body, které lze užít k deformaci a tvarování NURBS objektů. Posunutím jediného vrcholu se mění celá oblast tento bod ohraničující.

Isoparm jsou spojnice jednotlivých na sebe navazujících vrcholů. Isoparmu není možné posouvat či jinak deformovat jako takovou, ale lze ji přidat kamkoli na model. Tím se vytvoří nové uzly a s tím související vertexy. Zvětšuje se tak rozlišení a množství detailů modelu.

Hull (trup) je stejně jako isoparm spojnicí vertexů, ale na rozdíl od ní je možné jej deformovat. Jeho označením si uživatel ušetří mnoho práce, protože nemusí označovat každý vertex individuálně, což by v případě složitých a detailních modelů bylo značně namáhavé.

Velkou výhodou NURBS, kromě jejich hladkého tvaru, je možnost tyto povrchy vytvářet pomocí křivek, které jsou především bezierovy s možností nastavení jejich průběhu na linear, cubic, 3cubic a další. Položením několika křivek dostáváme možnost na nich vytvořit plochu několika způsoby. Loft (potažení), revolve (otočení), planar (rovinný), extrude (vytažení), bevel (sražení) a jiné. V rámci této práce je vysvětlovat nebudeme.

2.1.2 Polygons

Polygony jsou všeobecně nejintuitivnějším způsobem modelování. Jejich jednouchá stavba nám dává široké možnosti použití a transformace. Objekty vytvořené pomocí polygonů mají ostré hrany a ve výsledku nedávají hladké povrchy. Pokud chceme dosáhnout hladkého průběhu, musíme zjemňovat velikost jednotlivých polygonů. Takový složitější tvar z NURBS

(15)

může mít jen několik transformačních bodů a dát hladký výsledek. Chceme-li toto i po polygonálním objektu, musí takový povrch mít někdy i stovky transformačních bodů. Ze zkušenosti však mohu říct, že i takto složitý povrch je někdy rychleji zobrazován v prostředí a renderován než jednodušší NURBS povrch. Takže doporučuji nebát se složitějších polygonů.

Více přiblížím v praktické části.

Polygony jsou složeny ze několika základních prvků jako na obr.2.

obr. 2 Polygon komponenty

Vrcholy (vertex) reprezentují spojnici jednotlivých stran (edge) viz 2.2. Je možné je posouvat, vzájemně oddalovat, přibližovat a rotovat. K vrcholům se váže hned několik zajímavých nástrojů. Extrude verte (vytáhnout vertex), chamfer verte (obtočit vertex), merge vertex (spojit vertex) a jiné.

Mnohem více bude uživatel pracovat se stranami (edge). Strana je spojnice dvou sousedních vertexů. Deformace strany ovlivní oba vertexy s ní spojené. Maya dává k dispozici velké množství nástrojů pro práci se stranami. Mnou nejpoužívanější jsou extrude edge tool, které vytáhne stranu zanechávajíc původní a tím vzniká nová ploška a editační body, a split edge ring tool, které přišlo s novější verzí Maya 7 a rozdělí stranu na dvě části.

Při tom sleduje návaznost jednotlivých ploch a pokud uživatel nestanoví jinak,tak rozdělí celou řadu stran.

Face (ploška) je plocha tvořená minimálně třemi vrcholy, jejichž pořadí určuje orientaci plošky, jak bylo zmíněno v kapitole 2.2. Maya nejraději pracuje se 4 vrcholovými ploškami tzv. quad, a také ji příliš nevadí trojúhelníky. Mnohoúhelníky zpracovává s většími obtížemi, ale celkově se nedoporučuje je na modelu zanechávat a to především vzhledem k animaci, kdy pak vznikají nepříjemné komplikace. Nástroje pro editaci plošek jsou podobné těm co

(16)

užívají strany. Extrude face, cut faces tool (vytvoří řez skrze celý polygon) jsou nečastěji užívané.

2.1.3 Subdivisions

Subdivize jsou poměrně novou záležitostí. Tato metoda slučuje kvality NURBS a Polygonálního modelování. Poskytuje uživateli nástroje pro modelování s polygony a přitom zanechává perfektně hladké výsledky. Subdivize je možné zpracovávat ve standardním režimu, tak i v polygonálním režimu obr.3.1.3.

obr. 3 Subdivisions

Editace subD modelu v různých režimech se provádí stejně jako je popsáno v předchozích kapitolách.

2.2 Materiály a textury

2.2.1 Materiály v Maye

Maya má k dispozici sadu základních materiálů, které mají přednastavené vlastnosti a hodí se k různému využití. Prostor pro aplikování a úpravu materiálů se nazývá Hypershade.

Nechci zde probírat všechny materiály, ale zmíním se těch nejdůležitějších.

Přednastavený materiál, který je aplikován na všechny nově vzniklé objekty je Lambert. Používá se pro simulaci matných neodrazivých materiálů, jako jsou zdi, neopracované dřevo, látky a jiné. Tento materiál, stejně jako ostatní, má spoustu možných

(17)

nastavení, od změny barvy, průhlednosti, průsvitnosti, světlosti až k žhnutí a pohlcování světla.

Mezi další standardní materiály patří Blinn, který výborně imituje kovy, Phong, jež se užívá především pro iluzi plastů a jiných látek, které potřebují přesné a ostré odlesky a odrazy. Velmi zajímavý je Ramp shader, který umožňuje nastavení barev podle úhlu záběru kamery nebo natočení objektu. Často se vkládá do různých atributů např.: vložíte-li ramp shader o určitém gradientu do průhlednosti Lambertu, získáte hezky odstupňovanou viditelnost.

2.2.2 Textury

Při vytváření modelů a následném aplikování materiálů, je nejběžnější vytvořit si vlastní textury v nějakém z dostupných 2D softwarů, použití fotografií nebo stažení požadované textury z internetu. Takto vytvořené textury se následně aplikují do barvy, průhlednosti, bump mapování , jednoduše všude tam, kde se vám to hodí.

Ale v závislosti na místě použití se musí výsledné textury upravovat, aby je daný 3D software dokázal přeložit.

Barevná textura je jasná. Reálné barvy v ní zachycené se aplikují přímo na model a v renderu se prezentují tak jak skutečně jsou.

Chceme-li aplikovat texturu do bump mapování nebo displacement mapy (oboje vytváří na základě barvy textury zvýšený nebo naopak snížený povrch) musí být barevně sladěna v šedých odstínech, kde bílá znamená nejvyšší místa a černá nejnižší místa.

2.2.3 UV mapování

S aplikací textur souvisí velmi úzce UV mapování. Tato metoda se používá u polygonálních modelů (u NURBS se textura aplikuje jako projekce). Většinou panuje názor, že mapování pomocí UV je složitá záležitost, ale z mé vlastní praxe vím, že je lepší strávit čas nad UV souřadnicemi, které jsou dosti intuitivní, než parametricky mapovat projekce u křivkových povrchů.

UV mapping vychází z rozložení bodů na modelu. Jak je vidět na obr.4.

(18)

obr. 4 UV mapování

Vrcholy modelu, které mají svoje souřadnice v prostoru, se musí uspořádat na 2D plochu tak, aby výsledná textura co nejlépe vyplnila prostor mezi nimi.

2.3 Renderování v Maye

2.3.1 Osvětlení

Osvětlení dává výslednému modelu hloubku a zvyšuje jeho realističnost. Maya má k dispozici hned několik druhů světel. Spot light (kuželové světlo), které nejvíce připomíná standardní lampy, Point light (bodové světlo), Ambient light (světlo prostředí), Directional light (směrové světlo), které se hodí nejlépe pro simulaci slunečního světla, Volume light (objemové světlo) a Area light (plošné světlo). Opět jejich využití zaleží na přístupu jednotlivých uživatelů.

Velmi užitečným zdrojem světla se stávají také HDRI (High Dynamics Ray Image) mapy. Jsou to obrázky, které v sobě obsahují informaci o zdrojích světla a umožňují naprosto realistické nasvětlení a odrazy. Pro tuto funkci musí být použit Mental Ray renderer, ale o tom později.

(19)

2.3.2 Maya software renderer

Standardní renderovací engine v Maye. Nejčastěji ho využívám pro testovací renderování, protože jeho renderovací časy jsou ve srovnání s Mental Ray nízké. Hlavní nastavení jsou shodná jako u ostatních. Samotný maya software renderer umožňuje nastavení antialiasingu, rozšířeného raytraycingu, pohybového rozostření, nastavení zaostření a jiné.

2.3.3 Mental Ray renderer

Tento engine nepochází přímo z koncernu Adobe a je stažitelný i do jiných 3D aplikací.

Mental ray je v dnešní době jeden z nejvýkonnějších rendererů. Kompletně celá má práce je renderována právě zde.

Standardní nastavení jsou stejná jako u software rendereru. Ale ostatní nastavení jsou velmi specifická a umožňují vytvářet obrázky, které jsou na první pohled nerozlišitelné od reálných objektů.

Mental Ray umožňuje nastavit raytraycing, antialiasing, ale také Global Ilumination a Caustics, které, pokud se připustí u světel, počítají photony vystřelené světlem a vytváří realistické lomy světla, jeho odrazy a tak jeden zdroj světla může velmi přirozeně osvětlit velké prostory jako je vidět na obr.5.

obr. 5 Mental Ray globální iluminace

Další užitečná funkce je Final gather, který zvyšuje realističnost obrázků zajištěním druhotných odrazů světla. V jistých případech se dá říct, že final gather nahradí Globální osvětlení.

Ostatní renderovací enginy přibližovat nebude, protože nejsou tolik důležité.

(20)

2.4 Základy animace v Maye

Stejně jako u jiných programů, také v maye je časová osa. Jako úplně první věc je třeba nastavit rychlost jejího přehrávání, což se provede v menu preferences. Na časové ose se vytvoří klíčové snímky ve zvoleném odstupu a animace se vypočítá automaticky s možností její úpravy přes okno hypergraph.

V maye je možné vytvořit klíčový snímek téměř ze všeho. Může jím být posuv ve všech osách, rotace, zvětšení, ale i pohyb jediného vertexu, barva materiálu, průhlednost, gradient v ramp shaderu, jednoduše cokoli. Klíčový snímek se dá vytvořit i skriptově a to přez napsanou rovnici (expression). Další zajímavá funkce je navázat kameru na vytvořenou křivku, kterou můžu také animovat a nechat tak kameru létat v prostoru. Tato technika má výborné uplatnění při animování průletů budovou. Možnosti jsou opravdu široké.

3 Maya™ praxe při vytváření, texturování, renderování a animování budovy IC

3.1 Modelování a s tím spojené problémy a zjištění

3.1.1 Zdroje a podklady

Mít kvalitní podklady pro model není vždycky zrovna jednoduché. Jednou obsahují chyby, po druhé zase spoustu pro model nepodstatných věcí. Co se týče budovy Informačního Centra, tak zodpovědní architekti byli víc než vstřícní a tak se mi do ruky dostaly nejen DWG půdorysy, ale i zpracované modely ve formátu 3DS. Tento formát je všeobecně podporovaný, ale v tomto případě jsem měl smůlu, protože po importování modelu do Mayi se objevilo něco naprosto nepřehledného a stěží použitelného. Myslím tím, že celá geometrie se překrývala, někde dokonce chyběla. Takový model je možné upravit, ale výsledky nejsou zaručeny. Proto jsem se rozhodl celý model kompletně přemodelovat od prvního polygonu až do konce, což bylo nakonec časově i méně náročné.

(21)

3.1.2 Tvorba modelu budovy IC

Celý model IC je tvořený výhradně polygony. Pro architekturu se to nejvíce hodí, protože se snadno vytváří rohy, dveřní futra, schodiště a jiné. Během modelování jsem používal především create polygon tool, kterým jsem si po zjištění správných rozměrů vytvářel vodorovné řezy zdí a pomocí funkce extrude face tak vytahoval celou zeď (obr.6).

Celkem jednoduchý způsob, jak se dá pomocí několika kroků vytvořit komplexní architektura.

Nejobtížnější bylo vytvořit 1. podzemní patro a 1. nadzemní patro. Ostatní podlaží byla téměř totožná, tak stačilo zavést postup a aplikovat ho několikrát za sebou.

obr. 6 Extrude face metoda

Jedním z nepříjemných aspektů modelování IC byl fakt, že budova nebyla zdaleka dokončená a přístup do ní byl značně omezen. 4asto se tudíž stávalo, že jakmile jsem dokončil část modelu, už abych to modeloval znovu.

Ulehčením naopak bylo včasné rozmyšlení animací, které mě ušetřilo spoustu práce na částech modelů, které nejsou v „navigaci“ použity.

3.1.3 Model areálu Husova Technické univerzity v Liberci

Model budovy IC byl hotov a tak nastal čas na jeho interiéry. Materiály k interiérům ale nebyly ještě zcela dořešeny, tak se objevilo několika týdenní časové okno. Ačkoli to nebylo v plánu, začal jsem pracovat na areálu univerzity.

Bohužel veškeré mé snahy o získání kvalitních podkladů k těmto budovám skončily neúspěchem. Proto jsou všechny modely budov (F, E, C a přilehlých) vytvořeny od oka, což může bystrý pozorovatel poznat.

(22)

Jak už to bývá, tak člověk musí nejprve udělat chyby, aby se z nich mohl později poučit.

První přilehlou budova jsem vymodeloval jako jeden objekt a to včetně oken, vchodu, dveří a střechy. To se ukázalo být naprosto nevhodné, protože pozdější úpravy mě nutily zasahovat do celého modelu místo jednotlivých částí. Také UV mapování byl oříšek, nemluvě o snaze aplikovat materiál na malinké plošky okenních rámů.

U dalších budov jsem již tuto chybu nezopakoval. Je mnohem jednodušší vymodelovat hlavní kostru a pak k tomu připojit dodatečné části. Například při vytváření první budovy jsem veškerá okna extrudoval rovnou z hlavního modelu, kdy docházelo k deformacím plošek vlivem jiné orientace. U druhé budovy jsem již okna dělal odděleně a tak mi stačilo vytvořit jedno a zkopírovat několikrát s perfektními výsledky.

Velmi zábavné bylo modelovat budovu F. Její neobvyklý tvar byl tak trochu výzva, stejně jako její materiály. Výsledek můžete sami posoudit přímo v mé aplikaci.

3.1.4 Interiéry a jiné vybavení

Modelovat interiéry bylo vůbec nejzábavnější. Vzhledem k rozmanitosti jsem použil polygony, NURBS plochy i subdivize. Jak jsem zmínil již v úvodu, byly interiéry vymyšlené zatím jen prozatímně a tak většina vybavení, pokud nebylo zaneseno v plánech čí jiném katalogu, je můj design a tak se mohou vyskytnout nesrovnalosti s realitou.

S modelování interiérů přišli i komplikace a to především s renderování. Vzhledem k tomu, že například celé třetí patro mělo kolem 3000 polygonů a jediná klávesnice u počítače kolem 4000, tak začínalo být čím dál obtížnější dělat testovací rendery. I samotné zobrazení v aplikaci zvládalo méně obrázků za sekundu a začalo se „trhat“. V tuto chvíli přišlo na řadu vhodné rozvrstvení. Vrstvy, které jsem zrovna neupravoval, zůstávaly skryty a tím se mi zvyšovala výkonnost.

Velice zajímavý a poučný byl moment, když jsem vytvořil posezení v kavárně ve druhém patře. Celé se skládalo z jednoduchých tvarů typu NURBS. Nezávislý pozorovatel by řekl, že to je méně náročné než mnoha tisícové polygony, ale opak byl pravdou. Rederování jediného obrázku, který i beztak nevypadal nejlépe, trvalo za použití NURBS skoro 3 hodiny.

Vzhledem k tomuto faktu jsem se rozhodl přemodelovat posezení pomocí polygonů s vysokým rozlišením, abych zachoval detaily. Testovací render byl hotov během půl hodiny a vypadal dokonce lépe. Na obr.7 „vidíte“ rozdíl mezi NURBS židlí a polygonovou židlí. Tato záležitost přispěla i k tomu, co píši v kapitole 2.2.

(23)

obr. 7 Rozdíl mezi NURBS a polygonárním povrchem

3.2 Materiály a textury

3.2.1 Aplikované standardní materiály

Většina použitých materiálů jsou jenom Mayou nabízené základní shadery, poupravené tak, aby splňovaly mé nároky na detaily a vlastnosti. Nejčastěji jsem užíval lambert na zdi a matné povrchy, Blinn pro simulaci kovových materiálů a Phong pro plasty, tudíž většinou interiéry. Při použití těchto materiálů není v zásadě třeba zvláštní UV mapování, protože mají neměnnou barvu a není u nich třeba nastavovat určité prostorové detaily tedy bump mapy.

(24)

3.2.2 Textury, jejich vytváření a obecná problematika

Texturování jsem využil především při vytváření reálného dojmu areálu univerzity.

Bylo by téměř nemožné vytvořit takové zdání užitím procedurálních textur (textury počítané softwarově). Takové textury jsou v základním vybavení programu Maya, ale ve většině případů není možné je užít pro komplexnější vzezření.

Tady přichází ke slovu tvorba vlastních textur. Nejprve bylo nutné pořídit fotografie všech objektů, které jsou zahrnuty v modelu areálu Husova TUL a to jak přené detaily, tak i celkový dojem budov. Takto pořízené fotografie jsem importoval do příslušného 2D softwaru a upravil tak, aby splňovaly požadavku modelů.

3.2.2.1 Komplikace s texturami jejich řešení

Příliš vysoké nároky na detailní záběry budov způsobily v celkovém měřítku značné problémy. Moje představa byla taková, že každá zeď, každé okno a každý kámen má mít velké množství detailů, aby se daly vytvořit blízké realistické záběry. To znamenalo vytvoření barevných textur, textur pro bump mapování, textur pro specularní mapování (odlesky, odrazy, svítivost) a někdy i difuse mapy (pohlcování světla).

Pokud bych chtěl udělat detail, třeba na zeď 3x2 v rozlišení 640x420 pixelů, musela by mít textura, pokud by to byl jeden obrázek, aplikovaná na celou budovu velikost minimálně 6000 x 6000 pixelů, aby se zachovalo dostatek detailů. Taková textura může na disku zabírat i několik desítek Mb nehledě na hodiny a hodiny renderování! Maya si tyto textury musí načíst do paměti, aby se s nimi dalo pracovat. Tímto způsobem jsem vytvořil textury pro dvě z budov a to stačilo k tomu aby se mi neúnosně zatížil systém.

Nabízela se tudíž otázka: „Co se asi stane až tímto způsobem budu chtít vytvořit texturu celého prostředí kolem budov?“ Toto prostředí mělo velikost několikanásobně větší než jednotlivé budovy. Věřte nebo ne, zkusil jsem to výsledek byl neúnosný. Textura měla 12000x8000 pixelů a zabírala skoro 200Mb! Toto mě přivedlo na výbornou myšlenku. Místo velkých textur jsem začal vytvářet bezešvové (seamless) textury.

3.2.2.2 Textura se švy a bez švů

Základní rozdíl je ten, že seamless texturu (obr.8) lze aplikovat na obrovské plochy tak, že se mnohokrát zopakuje a vytváří dojem jediné velké textury. Taková textura může mít velikost jen několik desítek Kb. Rychleji se načte a nezpomaluje systém. Kdežto textura, která má švy (neplynulé přechody) se aplikuje na určitý objekt pouze jednou a nemůže se opakovat.

(25)

Takové textury se používají například při texturování postav v počítačových hrách, protože jeden obrázek může obsahovat barevné informace pro celý model jak je vidět na obr.9.

obr. 8 Bezešvová textura

obr. 9 Textura s jasným přechoded

3.2.2.3 Rozměry textur vzhledem k animaci

Jaká bude velikost textur a jejich detail, závisí také na požadovaných animacích.

Kamera, kterou použijete má vámi nastavené zorné pole, místo zájmu a také rozlišení výsledného snímku. Obecně lze říct, že pokud vaše kamera bude zabírat celou plochu například dveří, tak by mělo být rozlišení textury 1,5krát větší než rozlišení výsledného snímku. To je také jeden z důvodů, proč bylo vytvářet veliké textury budov areálu zbytečné.

Taktéž vytvářet bump mapy není na místě, pokud vzdálenost kamery je taková, že detaily touto mapou vytvořené nebudou při daném rozlišení viditelné.

(26)

3.3 Rendering

3.3.1 Osvětlení

3.3.1.1 Venkovní osvětlení

Abych získal reálné osvětlení celého areálu, tak bylo třeba buďto vytvořit větší množství světel, nastavit dobrý light linking ( propojení světel s objekty) a vhodně tyto světla umístit, a nebo použít globální osvětlení pomocí HDRI mapy za užití Mental Ray rendereru.

Light linking je ale věc záludná. Každé světlo musí být připojeno právě k objektům, které má ovlivňovat, ale vzhledem k náročnosti modelu je velice náročné najít právě tyto požadované části. Světlo, které má špatně nastavené propojení, může osvětlit i objekty co nemá a právě toto se dá zjisti renderováním. Avšak zjistit že mám špatně nastavená světla po nějaké té hodině renderování, je vážně nepříjemné.

Používání dobrého rozmístění světel může dát pozoruhodně realistické výsledky, ale také nemusí. Já osobně sázím na mnohem jednodušší osvětlení pomocí HDRI mapy.

Množství užitých světel se tím zmenší a výsledky jsou opravdu reálné. Vznikají jemné stíny, místa v zákrytu jsou osvětlena přirozeně a nedochází k nechtěnému osvětlení nežádoucích objektů.

HDRI je jedna z dovedností Mental Ray, ale jeho užití značně zvyšuje renderovací časy.

Chci-li použít tuto mapu, tak musím připustit v nastavení final gather , a ten je velký

„nepřítel“ každého normálního počítače. Při jeho zapnutí se může renderovací čas několikanásobně prodloužit. Vezmu-li v úvahu, že jsem chtěl vytvářet animace o několik stech snímcích, tak by toto nastavení bylo časově neúnosné. Jedna z možností bylo zjednodušit model co nejvíce a tím zmenšit časy renderů.

HDRI mapu a final gather jsem použil jenom u vnějších záběrů, kdy jsem odstranil veškeré interiéry a jiné nepříliš důležité časti modelu a snížil tak renderovací čas přibližně na 45 minut.

3.3.1.2 Interiérové osvětlení

Pro reálné osvětlení interiérů je třeba zjistit všechny světelné zdroje a to jak vnitřní tak vnější. K tomuto účelu jsem měl k dispozici podklady zobrazující rozložení světel v prostoru.

(27)

V prostorách budovy IC jsou bodová světla, halogeny, zářivky a na osvětlení se podílí i venkovní světlo.

Bodová světla jsem nahrazoval polygonálními plochami s lambert materiálem, kterému jsem nastavil hodnotu žhnutí (vytváří dojem zdroje světla). K těmto ploškám jsem připojil bodová světla (point light) s lineárním slábnutím, raytrace stíny (v závislosti na poloze světla v prostoru se nastavují i jiné směry stínů) a o intenzitě odpovídající velikostem modelu.

Pokud se ponechá jenom jedno takové světlo, tak bude prostor na renderu vypadat neosvětlen nebo jenom velmi málo. Velké množství těchto světel ale dokáže nasvětlit veliké plochy a simulovat tak globální osvětlení.

Velké množství světel je zrádné v tom, že značně zvyšují renderovací časy a mohou způsobit zvláštní vrhání stínů. Tento problém velmi kvalitně redukuje právě final gather, který stíny zjemňuje.

Final gather také způsoboval skoro 3 hodinové rendery a tak jsem od něho upustil z časových důvodů. Stejně tak i HDRI pro simulaci z vnějšího prostředí vstupujícího světla bez FG nefunguje.

V patrech, kde je třeba vytvořit dojem osvětlení vnějším světlem, jsem final gather nahradil globální iluminací s cílenou produkcí photonů z umístěných světel s nulovou intenzitou. To zajistí příjemné osvětlení a neprodlouží tolik renderovací časy.

(28)

3.3.2 Zvolený renderovací engine

Pro renderování jsem používal výhradně Mental Ray, když v jedné fázi projektu, než mě napadla vylepšení, jsem přemýšlel o nižší kvalitě renderů pomocí software renderu, ale s rychlými výsledky. Rozdíl mezi testovacím tenderem ze softwarového renderu a Mental Raye je na obr.10.

obr. 10 Sofware render a Mental Ray render

Rozdíl je na první pohled patrný. Se stejnými světly dokázal MR se zapnutým FG udělat obrovský rozdíl v realističnosti nasvětlení. Jak jsem již zmínil výše, tak nastavení s final gather jsem vyloučil a použil místo toho global illumination, takže kvalita je někde uprostřed.

3.4 Způsoby animace

3.4.1 Polohování kamery a modifikace dráhy

Tuto techniku jsem využil pro renderování vnějších záběrů na areál univerzity. Výhodné to bylo zejména proto, že jsem potřeboval jasné výchozí body, jejichž hodnoty jsem si zaznamenal a pak je používal při animaci různých cest mezi stejnými body. Neznám způsob jak bych tohoto mohl dosáhnout jiným způsobem.

Technika spočívá v nastavení polohy kamery, stanovení klíčového snímku, posunutí se v časové ose opětovném nastavení kamery a klíčového snímku. Dráha mezi těmito dvěma

(29)

body se automaticky vypočítá. Ne vždy je ale tato dráha použitelná. Maya má pro tyto případy Graph Editor. Každá animační sekvence pro jednotlivé atributy je zde znázorněna jako křivka mezi klíčovými snímky, která se dá transformovat jako standardní Bezierova křivka. Dá se tam ovlivnit poloha, v tomto případě, kamery, její rotace a jiné, aniž by uživatel musel vytvářet další klíčové snímky.

3.4.2 Aplikace na Motion Path

Motion Path (dráha pohybu) je skvělým pomocníkem při animaci přesných drah. Dráha je jednoduchá křivka, kterou si uživatel sám vytvoří. Na tuto křivku se dá připojit jakýkoli objekt včetně samotné kamery. Jedním z dalších způsobů aplikace na motion path je tzv. Flow path object, kdy se připojený objekt transformuje v závislosti na deformacích dráhy.

Tento způsob animace jsem používal výhradně pro interiéry. Kamera tak pluje přesně tou cestou, kterou jsem ji zadal. Zhodnotit kvalitu takového pohybu můžete osobně v mé aplikaci.

4 Flash™ teoretický základ

4.1 Objekty a grafika

4.1.1 Vektory a bitmapy

V téměř všech publikacích o aplikaci Flash se dozvíte, že je to program pro zpracování vektorové grafiky. Vektorová grafika je jednoznačnou výhodou, ale velmi často se pracuje i s bitmapami.

Vektorové vyjádření počítačové grafiky má nesporné klady oproti bitmapové grafice.

Vektorová grafika je jednoznačně nejméně náročná na datový objem informací. Každá křivka či plocha je vyjádřena matematickými souřadnicemi jednotlivých bodů. Taktéž barvy a tloušťka čar jsou definovány matematicky.

(30)

Hned na první pohled je možné postřehnout, že oproti bitmapě se kvalita vektorové grafiky po jejím zvětšení nezmění, kdežto u bitmapy dojde k „rozpixelování“. U vektoru dojde pouze k přepočítání rovnic bodových souřadnic, tloušťky čar a jiných.

Ve Flashi je také velmi zajímavou funkcí vzájemné ovlivňování vektorové grafiky (obr.11). Pokud nejsou jednotlivé vektory rozděleny do vrstev, tak se mohou vzájemně řezat a doplňovat.

obr. 11 Vektorová grafika ve Flashi

Bitmapy jako takové jsou tvořeny rastrem bodů, kde má každý bod přesně určenou polohu a barvu. Bitmapa v nekomprimovaném (neupraveném) stavu má přesně tolik bodů, kolik jich vznikne vynásobení šířky a výšky obrázku v pocelech. Pro potřeby přenosu obrázků a dnešních internetových prezentací je třeba tyto neupravené bitmapy komprimovat a tím zmenšovat jejich datovou náročnost. Dnešními bitmapovými standardy jsou JPG, který dává poměrně vysokou kvalitu obrázku a malý soubor, BMP a TGA, které ale nemají tak vysokou kompresi a PNG (portable network graphics), který se postupně stává standardem na poli internetové grafiky.

PNG je produktem, dnes již neexistující společnosti, Macromedia a slučuje v sobě dostatečnou kompresi, zachování kvality a také uchování alpha chanelu, tedy informaci o průhlednosti.

4.1.2 Symboly ve Flashi

Chceme-li s objekty ve Flashi pracovat na vyšší úrovni, je třeba je transformovat na symboly. Ty, jako takové, musíme ve Flashi vytvořit z nějaké grafiky. Mohou to být importované obrázky, nebo vytvořená grafika či texty. Základní typy symbolů jsou

(31)

následující. Movie Clip, Button a Graphic. Každý z nich má své vlastnosti a může být použit k různým účelům.

4.1.2.1 Movie Clip

Jednoznačně nejčastěji využívaným symbolem je právě Movie Clip. Každý má svou vlastní časovou osu stejně jako každá scéna v dokumentu. Na této ose může být animace, další grafika, tlačítka i jiné Movie Clipy. Stejně jako hlavní scéna může mít i mnoho vrstev a členění i na několik pod sebe spadajících levelů.

4.1.2.2 Button

Tlačítko (button) je další ze standardních symbolů. Tento symbol je ale používaný velmi zřídka, protože jeho funkce spolehlivě zastane Movie Clip. Button má také svou časovou osu, ale ta je omezena na čtyři snímky (frames). Up , časová osa se na něj přesune pokud je tlačítko neaktivní, Over, pokud se kurzor myši přesune nad tlačítko, Down, zde je časová osa při stisknutí tlačítka a Hit, který je zde pouze pro vymezení aktivního prostoru tlačítka pokud ten, určený objekty v předchozích snímcích, nestačí.

Do jednotlivých snímků se může vkládat grafika, ale i všechno ostatní co jsme schopni v aplikaci vytvořit, takže lze dosáhnout velmi zajímavých efektů.

4.1.2.3 Statická grafika (graphics)

Jak již název napovídá, tak tento symbol se používá pro uchování grafiky, vektorů a jiných objektů, které nemají mít žádné další speciální funkce či využití.

4.1.2.4 Instance pojmenování symbolů

Máme-li rozsáhlý dokument, kde je například třeba použít jeden Movie Clip hned několikrát na stejném snímku a k tomu chceme aby každý měl jiné vlastnosti, tak přichází na řadu instancování nebo-li pojmenování jednotlivých Clipů pro Actionscript (programovací jazyk aplikace Flash). K tomu slouží kolonka instance name. Takto můžeme naprogramovat chování několika stejných Movie Clipů, aniž bychom tím ovlivnili ty ostatní. Jména instancí se samozřemě dají nastavit i u tlačítek a statické grafiky.

(32)

4.2 Základy animace

Jednou z nejsilnějších zbraní aplikace Flash je schopnost vytvářet animace snadno a rychle.

Flash byl vlastně původně zamýšlený především jako animační nástroj a teprve později s bližším zjištěním schopností Actionscriptu se stal předním nástrojem pro tvorbu internetových aplikací. Animace lze provádět třemi způsoby. Jsou to snímek za snímkem (frame by frame), Motion Tween a ShapeTween.

4.2.1 Frame by Frame

Snímek za snímkem je nejednodušší metoda jak vytvořit animaci a pro některé její druhy i jedinou možností. Jednoduše se vytváří grafika do řady za sebou jdoucích snímků.

Dají se tak vytvořit opravdu vynikající animace. Využití najde i při animaci importovaných obrázků.

4.2.2 Motion Tween

Motion znamená pohyb, ale tento druh animace se dá použít i pro změnu barvy, tvaru, velikosti či průhlednosti. Vytvoření takové animace je jednoduché. Vytvoří se klíčové snímky, které představují počáteční a koncovou hodnotu animace, a celý průběh pak vypočítá aplikace(obr.12). V novějších verzích Flash je, stejně jako v Maye, možné upravovat polohu objektů bez vkládání dalších snímků, pomocí custom easing editoru.

obr. 12 Motion Tween animace

(33)

Dále je možné animovat způsobem Motion Tween za požití motion guide (naváděcí křivka). Princip je podobný jako při užití motion path v Maye (kap.3.4).

4.2.3 Shape tween

Některé animace není možné dosáhnout pomocí MotionTween. Mezi takové patří změna tvaru nebo gradientové výplně. V tu chvíli je nejlepší řešení použít právě Shape Tween. Opět se vytvoří dva klíčové snímky, začáteční a konečný, a zbytek animace vypočítá aplikace, tak že vezme souřadnice grafiky v prvním snímku a přepočítá je lineárně na souřadnice konečného snímku. Lépe je to vidět na obr.13.

obr. 13 Shape Tween animace

4.2.4 Rychlost přehrávání animací

V každém Flash dokumenty si můžete všimnout, že je možné nastavit rychlost přehrávání animace. Tato rychlost ovlivňuje plynulost animací, ale také zvyšuje datovou náročnost. Zvolíte-li malou rychlost, jako je například 10 obrázků za sekundu, bude animace trhaná a neplynulá. Naopak dávat více než 24 snímků za sekundu plynulost přehrávání nevylepší, akorát zvedne datovou náročnost.

Je také dobré vědět, že pokud vytváříte rozsáhlou aplikaci skládající se z několika částí, které se do sebe vzájemně načítají, tak je nutné u každé části zvolit stejnou rychlost přehrávání, aby se zamezilo pozdějším konfliktům a problémům.

(34)

4.3 Actionscript

Stejně jako můžete statickým internetovým stránkám dodat trochu života použitím událostí JavaScriptu, můžete i flashovým animacím dodat interaktivitu pomocí různých ovládacích prvků. ActionsScript je vlastní programovací jazyk aplikace Flash a je na první pohled jasné, že vychází z objektově orientovaného programovacího jazyka JavaScript. Je skoro až zarážející, jak jsou si tyto dva jazyky podobné.

ActionScript se od ostatních programovacích jazyků liší také faktem, že není nutné jej před použitím zkompilovat. Stačí mu ke svému správnému běhu nějaký engine, který zajišťuje provádění skriptů právě tak, jak přicházejí. K tomuto účelu slouží Flash Player, který je nainstalovaný v daném internetovém prohlížeči. S novějšími verzemi aplikace Flash přichází i novější verze Flash Playeru, které zajišťují funkčnost novějších komponent.

Jen pro zajímavost bych rád uvedl několik příkladů odlišností ActionScriptu od JavaScriptu, kterých je mnohem méně než jejich společných vlastností.

• ActionScript nepodporuje objekty prohlížeče jako jsou Anchor, Document a Window

• ActionScript nepodporuje žádné objety definované pro JavaScript

• ActionScript podporuje zápis syntaxe konstruktorů, které není v JavaScriptu povoleno (například tellTarget nebo ifFrameLoaded a zpětné lomítko). Tenot způsob zápisu ale není doporučován. Namísto něj používejte syntaxi stejnou jako v JavaScriptu (například with, _framesloaded a tečkovací syntaxi zápisu).

• ActionScript nepodporuje některé konstruktory JavaScriptu, jako například try, catch, throw.

• ActionScript nepodporuje konstruktor Function JavaScriptu

• Příkaz eval v ActionScriptu pouze dovoluje přistupovat k proměnným podle jména.

• Když je v JavaScriptu textový řetězec vyhodnocován jako boolean a má nenulovou délku, je výsledkem true; má-li hodnotu různou od nuly, je výsledkem false.

• V ActionScriptu je textový řetězec převeden na číselnou hodnotu. Jestliže se číslo nerovná, je výsledek true, jinak je výsledek false..

Rád bych ještě uvedl některé základní vlastnosti jazyka Flash, které velmi významně ovlivňují interaktivitu vytvořených aplikací. Nebudu zacházet příliš do hloubky, protože k tomu není dostatečný rozsah této práce.

(35)

4.3.1 časové osy

Jakmile poprvé otevřete nový dokument ve Flashi, tak se vám objeví první časová osa.

Tato osa je tzv. root (kořen) nebo se také označuje jako _level0. Tato soa tvoří úplný základ každé na flashi postavené aplikace. S postupným dodáváním grafiky, Movie Clipů, tlačítek a jiných, se vám vytváří nové a nové časové osy, které mají svoje označení, svoje skripty, animace a grafiku s tím, že každá časová osa může mít neomezené množství snímků, vrstev a všeho ostatního, co jsme schopni ve flashi vytvořit.

4.3.2 Adresování

S časovými osami úzce souvisí adresování. Máme-li hlavní časovou osu (root), a na ní je námi vytvořený Movie Clip, jehož instance jméno je například „CeskaRepublika“ a na časové ose tohoto Clipu další Movie Clip s jménem „Praha“, bude možné z hlavní časové osy s ním pracovat pokud zadáte cestu _root.CeskaRepublika.Praha . Movie Clip Praha může obsahovat na své časové ose další Clipy, Buttony či jinou grafiku a tak jejich zacílení může být opravdu hluboké.

Samozřejmě je možné z časové osy nějakého hluboko vnořené Clipu, pracovat s hlavní časovou osou zase zpětným adresováním, buď adresováním _root., _level0 nebo postupně this._parent._parent._parent.... než dosáhneme požadované úrovně. Slovo „this“ znamená aktuální časovou osu, z které adresujeme. Tento poslední způsob je dobré používat, pokud máte externě načítaný swf soubor do jiného dokumentu. Tyto záležitosti v této práci vysvětlovat nebudeme.

4.3.3 Ovladače událostí

Je všeobecně známo, že každá akce vyvolá nějakou reakci. V programu Flash jsou odezvy na stisknutí, posunutí, tažení, načítání a další vyvolávány pomocí metod ovladačů událostí. Každý objekt v aplikaci Flash má svoje metody, které přispívají k větší interaktivitě vytvořených aplikací.

Velikou zajímavostí je fakt, že pomocí vhodného psaní skriptů je možné některé události, určené pro jednotlivé typy komponent, používat i u jiných objektů. Například Button

References

Related documents

With these objects, the two points of each pillar in each object are projected from the 3D world coordinate system to the image plane with respect to the camera

When using the 3D model, the minimum time for the simulation was 18 min, the maxi- mum time was 20 min 50 s, and the mean time was 19 min 12 s to evaluate the performance at

Pro vytvoření této práce byl vybrán herní engine Unity, který sice nevyniká svým grafickým zpracováním výsledné aplikace, ale oproti předchozím enginům

Computer Graphic Arts, bachelor's level 2017. Luleå University

glColor – podkladová barva vrcholu RGBA formátu (r,g,b,a); vstupní parametry mohou být typy GLfloat, GLdouble, GLudouble, GLint, GLuint, GLshort, GLushort (nebo

Keywords Calibration, Measurement, Industrial Robot, Tecnomatix 8.1.1 - Process Simulate, NX, Modelling of laser welding cell, moviemaking from 3D model, movie editing,

”Det finns, som nämnts, möjlighet och för högsta instans i vissa fall skyldighet

On the other hand, if the iron excitation is given only by the axisymmetric active coil (such as poloidal field coils or the central solenoid), a 2D model produces a good