ČESKÉ VÝSOKÉ ÚČENÍ TECHNICKÉ



Podobné dokumenty
Vývoj OS Windows Mobile. Ing. Jiří Šilhán

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

1. Začínáme s FrontPage

Instalace a první spuštění programu.

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Autodesk AutoCAD 2018

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

IP kamera. Uživatelský manuál

Windows a real-time. Windows Embedded

Procesory nvidia Tegra

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

Matematika v programovacích

DINOX IP kamery řady: DDC-xxxx DDR-xxxx DDX-xxxx DDB-xxxx

NÁVOD K POUŽITÍ. IP kamerový systém.

Elektronické učebnice popis systému, základních funkcí a jejich cena

Co je grafický akcelerátor

Začínáme NSZ-GS7. Síťový multimediální přehrávač. Obsah obrazovek, způsob ovládání a technické parametry se mohou změnit bez předchozího upozornění.

QCZ2631 A639. Průvodce 15G06A2451Z0

NÁVOD K POUŽITÍ. IP kamerový systém.

Kapitola 1: Úvod. 1.1 Obsah balení. 1.2 Požadavky na systém. Česky

Testovací protokol USB Token Cryptomate

Operační systém MS Windows XP Professional

1.2 Operační systémy, aplikace

VirtualBox desktopová virtualizace. Zdeněk Merta

MBI - technologická realizace modelu

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Návod na instalaci a použití programu

JSR tutorial 1 Úvod do JSR-184

CMS. Centrální monitorovací systém. Manuál

Služby Microsoft Office 365

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu...

Co je nového v aplikaci PaperPort 12?

Tvorba prezentaci v Autodesk Inventoru 10

CUZAK. Instalační příručka. Verze

Instalace SQL 2008 R2 na Windows 7 (64bit)

Instalace demoverze

Nápověda k aplikaci EA Script Engine

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Návod k použití softwaru Solar Viewer 3D

Uživatelská příručka k aplikaci Dell Display Manager

Rozcestník virtuálních světů

Instalace a od-instalace aplikace Google / Android

OBSAH. Stránka 1 z 11 INSTALACE THINPRINT RDP V POČÍTAČI KLIENTA STAŽENÁ Z WEBU 2

ROZVOJ ICT A PDA ZAŘÍZENÍ THE DEVELOPMENT OF ICT AND PDA DEVICES Jiří Vaněk

O aplikaci Parallels Desktop 7 for Mac

Testovací protokol čipová karta ACOS5

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

1. Úvod do obsluhy AutoCADu

TECHNICKÉ POŽADAVKY PRO INSTALACI SW PRO ZÁZNAM VIDEA PRO ZÁZNAM AUDIA (ZVUKU) PRO ZÁZNAM OBRÁZKŮ JAZYKOVÉ MUTACE

Ladibug Software pro vizuální prezentaci Visual Presenter Návod k použití

Kontrola obsahu balení

XNA Game Studio 3.1. Tomáš Herceg Microsoft Most Valuable Professional Microsoft Student Partner

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

úvod Historie operačních systémů

První použití notebooku GIGABYTE

ABRA Software a.s. ABRA on- line

Extrémně silné zabezpečení mobilního přístupu do sítě.

Mobilní informační průvodce - RegTim

Uživatelská dokumentace

Tvorba 3D výukových aplikací pomocí technologie

Point of View Android 2.3 Tablet - User s Manual ProTab 2XXL

Stručný obsah. Úvod 15. KAPITOLA 1 První kroky v systému Windows KAPITOLA 2 Hlavní panel a jeho možnosti 41. KAPITOLA 3 Soubory a složky 51

4 Microsoft Windows XP Jednoduše

Programové vybavení počítačů operační systémy

Pracovní prostředí Word 2003 versus Word 2010

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

Autodesk AutoCAD Civil 3D

Informace k e-learningu

Telekomunikační koncová zařízení

Windows 8.1 (5. třída)

4.6 Zpracování videa na počítači

Obsah. Úvod 9 Komu je kniha určena 11 Konvence použité v knize 11

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

1. Obsah 2. Úvod Zdarma poštovní klient od společnosti Microsoft přímo v PC

NOTEBOOK DELL INSPIRON 13Z 5000 TOUCH NOTEBOOK, I5-7200U, 4GB, 128GB SSD, 13.3" FHD DOTYKOVÝ, W10, ŠEDÝ, 2YNBD ON-SITE

TELEFONNí LiNKA PREMiUM PRŮVODCE APLIKACí T UC-ONE - PC

ELEKTRONICKÉ PODÁNÍ OBČANA

Použití Office 365 na iphonu nebo ipadu

MS Windows 7. Milan Myšák. Příručka ke kurzu. Milan Myšák

Dell UltraSharp U2518D/U2518DX/U2518DR Dell Display Manager Uživatelská příručka

1. Aplikace Vyhledání a stažení aplikace Založení BlackBerry ID. 2. Internet. 3. Zabezpečení

Rocrail. Nejprve: Obecný úvod. Instalace

POSTUP PŘIPOJENÍ POKLADNÍ TISKÁRNY PRO PRÁCI S ABRA GEN SPUŠTĚNOU NA VZDÁLENÉ PLOŠE

Archive Player Divar Series. Návod k obsluze

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Meeting Asistent. Manuál pro instalaci a ovládání aplikace. Nokia + Sony Ericsson telefony s OS Symbian

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

Dell P2018H Dell Display Manager Uživatelská příručka

NÁVOD NA INSTALACI KARTY PCTV DELUXE

Osnovy kurzů. pilotního projektu v rámci I. Etapy realizace SIPVZ. Systém dalšího vzdělávání veřejnosti. počítačová gramotnost

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

Bluetooth Wi-Fi GPS. LCD dotykový displej Tlačítko kalendář Přepínač Režim/ úkol

Uživatelská příručka k aplikaci Dell Display Manager

Instalace Microsoft SQL serveru 2012 Express

Windows 10 (5. třída)

Možnosti tisku v MarushkaDesignu

Transkript:

ČESKÉ VÝSOKÉ ÚČENÍ TECHNICKÉ Fakulta Elektrotechnická Katedra počítačové grafiky a interakce Bakalařská práce Grafické knihovny pro Windows Mobile Rymzhan Bayekeyeva Vedoucí práce: Mgr. Jiří Danihelka Studijní program: Softwarové technologie a management Obor: Web a multimedia 2011 1

Poděkování Chtěla bych tímto poděkovat Mgr.Jiřímu Danihelkovi za pomoc při vypracování bakalařské práce. 2

Prohlášení Prohlašuji, že jsem svou bakalářskou práci napsala samostatně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce a jejím zveřejňováním. V Praze dne 27. 5. 2011... 3

4

Abstract This thesis deals with the research of graphics library for rendering 3D graphics on mobile devices running Windows Mobile. The first part contains a quick introduction to Windows Mobile, the second part describes the common basics of 3D libraries and OpenGLES, WebGL, XNA, M3G, O3D, X3D, VRML, Java3D and GapiDraw. The last part contains a brief step-by-step instructions for programming with OpenGL ES and M3G. Abstrakt Bakalářská práce se zabývá výzkumem grafických knihoven pro vykreslování 3D grafiky na mobilních zařízeních s operačním systémem Windows Mobile. První část práce obsahuje rychlé seznámení s operačním systémem Windows Mobile, druhá část popisuje společné základy 3D knihoven a technologie OpenGL ES, WebGL, XNA, M3G, O3D, X3D, VRML, Java3D a GapiDraw. Poslední část práce obsahuje stručný návod krok za krokem pro programování s technologiemi OpenGL ES a M3G. 5

6

Obsah 1. Úvod...3 2. OS Windows Mobile...4 2.1. Zakladní vlastnosti Windows Mobile...4 2.2. Verze Windows Mobile...5 2.2.1. Pocket PC 2000 a Pocket PC 2002...5 2.2.2. Windows Mobile 2003 a Windows Mobile 2003 SE...6 2.2.3. Windows Mobile 5...6 2.2.4. Windows Mobile 6...7 2.2.4.1 Windows Mobile 6.1...8 2.2.4.2 Windows Mobile 6.5...8 2.2.4.3 Windows Mobile 6.5.1...9 2.2.4.4 Windows Mobile 6.5.3...9 2.2.4.5 Windows Mobile 6.5.5...9 2.2.5. Windows Mobile 7... 9 3. Grafické knihovny... 11 3.1. X3D... 11 3.1.1 Profily X3D... 11 3.1.2 Mobile X3D... 12 3.2. Java3D... 13 3.3. O3D... 13 3.4. GapiDraw... 14 3.5. WebGL... 15 3.6. OpenGL ES... 16 3.6.1 Verzi 1.0-1.1... 16 3.6.2 Verzi 2.0... 17 3.7. M3G... 19 3.8. XNA... 20 4. Praktické využítí knihoven 1... 22 4.1 Začínáme v M3G... 22 4.2 Nastavení prostředí... 22 4.3 New Project... 23 4.4 Java a Windows Mobile... 26 4.5 MIDlet Managers... 26 4.6 Instalace a spuštění MIDletu... 26 4.7 Immediate Mode vs Retained Mode... 27 4.7.1 Retained Mode... 28 4.7.2 Píšeme aplikaci v Retained Mode... 28 5. Praktické využítí knihoven 2... 32 5.1. Začínáme s OpenGL ES... 32 5.2. OpenGL ES a Windows Mobile... 33 5.3. Nastavení prostředí... 33 7

5.3.1. Výběr správné verze... 34 5.3.2. Instalace Vincent 3D Rendering Library... 34 5.4. New project a nastavení emulátoru... 35 5.5. Programování v OpenGL ES 1.1... 39 6. Závěr... 44 7. Použítá literatura... 45 8. Seznam příloh... 47 8

1. Úvod Svět mobilních technologií se neustále vyvíjí a mění. Tyto změny možná nejsou tak rychlé jako ve světě počítačů, ale jsou nezbytné. Lidé si rychle zvykli na malé zařízení s velkou funkčností, chtějí být stále k zastižení a mít po ruce vše co mohou potřebovat - při práci, na dovolené, ve škole. Dnešní technologie jsou zaměřeny na zvýšení funkčnosti těchto kompaktních zařízení. Výrobci zpočátku vybavovali svá mobilní zařízení funkcemi, jako je adresář, organizér, budík. Dnes už není vyjímkou mít v telefonu fotoaparát, přehrávač, rádio a dokonce počítadlo kalorií. Vývojáři proto neváhali přidat do mobilních zařízení také hry. První hry byly pouze ve 2D, ale kdo by dnes měl zájem o 2D hru v telefonu, když si může zahrát ve 3D na počítači? Tímto tedy vstoupil mobilní svět do éry 3D. Dnes se setkáváme nejen s 3D hrami, ale také s rozhraním mobilních telefonů vyvíjených pomocí 3D grafiky. To vše je umožněno díky vývoji softwaru a hardwaru na mobilních zařízeních. Jedněmi z prvních operačních systémů pro mobilní zařízení byli Symbian a Windows CE. Dnes operačních systémů více, např. Apple ios od Apple, Blackberry od RIM 1, a dokonce i Android od společnosti Google. Ve své práci se zaměřím na OS od gigantu Microsoft - Windows Mobile. Cílem této práce je prozkoumat dostupné knihovny pro rychlé vykreslování grafiky pro mobilní zařízení s operačním systémem Windows Mobile. Nabídnu srovnání jejich možností, rychlosti, přenositelnosti a jednoduchosti použití. Práce je rozdělena do dvou větších částí, první částí je výzkum a druhá část je praktická. Ve druhé kapitole popíši historii vývoje a verzi OS Windows Mobile. Třetí kapitola popisuje společné základy 3D knihoven. Ve čtvrté kapitole se budu věnovat všem technologiím, které jsou v dnešní době k dispozici. Popíšu technologie OpenGL ES, WebGL a M3G, O3D, X3D, VRML, Java3D a GapiDraw. V dalších kapitolách se zastavím u jednotlivých technologií OpenGL ES, M3G a popíšu jak s nimi lze naprogramovat 3D grafiku. Tyto kapitoly také obsahují stručný návod programování s uvedenými technologiemi. 1 RIM - Research In Motion Limited je kanadská firma zabívající se telekomunikačními a bezdrátovými zařízeními. 9

2. OS Windows Mobile Windows Mobile je operační systém firmy Microsoft, který je založen na Windows CE 5.2 kernel. Je určen pro mobilní zařízení (PDA, smartphony a zařízení portable media center). Jeho vzhled je odvozen od klasických Microsoft Windows, používá malou podmnožinu jejich Win32 API, avšak obsahuje zcela jiné hybridní jádro.[9] 2.1. Základní vlastnosti Windows Mobile Windows Mobile má ve většině verzí tyto rysy: Obrazovka Dnes ukazuje datum, informace o vlastníkovi, nadcházející události, e- mailové zprávy a úkoly. Uživatelé si mohou zvolit, které informace se budou na obrazovce zobrazovat. Na obrazovce se nachází rovněž stavové ikony Bluetooth, stavové ikony Bluetooth, Wi-Fi atd. Programy nainstalované v zařízení mohou přidat na obrazovku další položky. Obrázek na pozadí lze změnit přímo v zařízení nebo lze změnit celé téma. Horní pruh ukazuje čas, hlasitost a stav připojení. Hlavní součástí horního pruhu je tlačítko Start, které je podobné tomu z desktopové verze Windows. Start menu zahrnuje seznam nedávno spuštěných programů, devět upravitelných položek menu a odkazy na seznam programů, nastavení, vyhledávání a nápovědu. Office Mobile je sada mobilních verzí aplikace Microsoft Office zahrnutých ve Windows Mobile. Obsahuje Word Mobile, Excel Mobile a PowerPoint Mobile (z verze Windows Mobile 5.0). Mobilní verze mají mnoho rysů desktopových verzí, ale některé funkce byly značně redukovány. Outlook Mobile zahrnuje úkoly, kalendář, kontakty a poštu, které lze synchronizovat s aplikací Outlook, nebo přímo s Exchange Serverem Windows Media Player pro Windows Mobile podporuje formáty.wma,.wmv,.mp3 a.avi Klient pro PPTP VPN Internet Connection Sharing(ICS), které v oblasti mobilních telefonů umožňuje připojené počítače pro sdílení připojení k internetu přes USB a Bluetooth. 10

2.2. Verze Windows Mobile Existují tři verze Windows Mobile pro různá hardwarová zařízení: Windows Mobile Professional běží na telefonech s dotykovými obrazovkami (smartphony) Windows Mobile Standard pracuje na telefonech s pravidelnými obrazovkami Windows Mobile Classic běží na zařízeních se systémem Windows Mobile Classic devices (Pocket PC). a) b) c) Obrázek 2.1: a)- Windows Mobile Professional(LG KU990); b)- Windows Mobile Standard(T-Mobile Dash); c)- Windows Mobile Classic(O2 Pocket PC); 2.2.1. Pocket PC 2000 a Pocket PC 2002 Pocket PC 2000, pod původním kódovým označením "Rapier", byl uveden na trh 19. dubna 2000 a byl založen na systému Windows CE 3.0. Jednalo se o debut, který byl později přejmenován na operační systém Windows Mobile, a který měl být nástupcem operačního systému na zařízení Palm-Size PC 2. Jediné podporováné rozlišení bylo v této verzi 240 x 320 (QVGA). Existovala podpora pro vyjímatelné paměťové karty formátů CompactFlash a MultiMediaCard. Esteticky byl původní operační systém Pocket PC podobný operačním systémům Windows 98, Windows ME a Windows 2000. Pocket PC 2002, známý také pod původním kódovým označením "Merlin", byl představen v říjnu 2001. Stejně jako Pocket PC 2000 byl poháněn systémem Windows CE 3.0. Přestože byl zaměřen především na 240 320 (QVGA) Pocket PC zařízení, byl Pocket PC 2002 používán také pro telefony Pocket PC, a poprvé též pro Smartphone. Tyto Pocket 2 Palm-Size PC byl prvním pokusem Microsoftu o vytvoření PDA. 11

PC 2002 Smartphony byly hlavně GSM zařízeními. Esteticky se Pocket PC 2002 podobal nově vydanému Windows XP. 2.2.2. Windows Mobile 2003 a Windows Mobile 2003 SE Třetí verze s názvem Windows Mobile 2003 byla uvedena 23. června 2003. Dělila se na čtyři edice: Windows Mobile 2003 for Pocket PC Premium Edition, Windows Mobile 2003 for Pocket PC Professional Edition, Windows Mobile 2003 for Smartphone a Windows Mobile 2003 for Pocket PC Phone Edition. Windows Mobile 2003 for Pocket PC Phone Edition je verze pro Pocket PC s telefonním modulem (například HTC Himalaya, distribuovaným v mnoha zemích jako Qtek, XDA, MDA nebo VPA). Windows Mobile 2003 je založen na Windows CE 4.20. Verze Windows Mobile 2003 Second Edition, známá také jako Windows Mobile 2003 SE, byla vydána 24. března 2004 a jako první byla použita na Dell Axim x30. Zahrnuje tato vylepšení: Možnost přepnutí rozložení displeje našířku a zpět navýšku (pouze pro Pocket PC). Pocket Internet Explorer (jinak známý jako PIE) obsahoval možnost rozložení stránky do jednoho sloupce, nebylo již tedy nutné rolovat vodorovně. Podpora pro rozlišení displeje VGA (640 x 480). Dřívější verze podporovaly pouze QVGA ( 320 x 240 ). Dále zde byla podpora čtvercového rozlišení ( 240 240 a 480 x 480), zejména pro výrobce, kteří chtěli přidat na zařízení hardwarovou klávesnici Podpora Wi-Fi Protected Access (WPA). 2.2.3. Windows Mobile 5 Windows Mobile 5.0, dříve známý pod kódovým označením Magneto, byl představen 9. května 2005 na Mobile and Embedded Developers Conference 2005 (MEDC) v Las Vegas. Systém pohání Windows CE 5.0 a používá.net Compact Framework 1.0 SP2. První zařízení s Windows Mobile 5.0 byl Dell Axim x51. Nové vlastnosti: Nová verze Office s názvem "Office Mobile" Nová aplikace PowerPoint Mobile (prohlížeč formátu PPT) 12

Podpora grafů v aplikaci Excel Mobile Podpora vložení tabulek, seznamů a obrázků v aplikaci Word Mobile Změna práce s pamětí (Data se ukládají do FlashROM. RAM je určena pouze pro běh aplikací.) Windows Media Player 10 Mobile Zobrazení fotografie v kontaktu a její synchronizace Vylepšený správce fotografií a videí Centrální správa GPS pro navigační programy Podpora USB 2.0 Podpora technologií Direct3D, DirectDraw a DirectShow pro vývojáře Obrázek 2.2: Windows Mobile 5.0 pro Pocket PC, obrazovka Dnes 2.2.4. Windows Mobile 6 Windows Mobile 6, dříve známý pod kódovým označením Crossbow, je poslední verzí tohoto mobilního operačního systému, která byla představena 12. února 2007 na 3GSM World Congress 2007. Existují celkem tři verze systému: Windows Mobile 6 Standard pro smartphony, Windows Mobile 6 Professional pro PDA s integrovaným telefonem (Pocket PC Phone Edition) a Windows Mobile 6 Classic pro PDA bez telefonního modulu. Windows Mobile 6 je úzce propojen s Windows Live and Exchange 2007. Windows Mobile 6 Standard poprvé nabídl Orange SPV E650, zatímco Windows Mobile 6 Professional se nejdříve stal součástí O2 Xda Terra. Přehled nových vlastností Windows Mobile 6: Podpora rozlišení 320x320 a 800x480 (WVGA). Schopnost upravovat dokumenty Office na smartphonech Schopnost automatických aktualizací systému 13

Zlepšení přístupu přes vzdálenou plochu Podpora VoIP Integrace Windows Live Šifrování dat na výměnné paměťové kartě. Smartfilter pro rychlejší vyhledávání Podpora prohlížení HTML e-mailů v Outlook Mobile Schopnost hledat v Exchange Server Address Book. Podpora AJAX, JavaScript a XMLDOM v Windows Internet Explorer Mobile Obrázek 2.3: Windows Mobile 6.0 Standard, obrazovka Dnes 2.2.4.1. Windows Mobile 6.1 Windows Mobile 6.1 byl představen 1. dubna 2008. Je určen pro zařízení, která jsou vybavena dotykovým displejem (typicky smartphony). Jeho hlavní předností by mělo být upravené rozhraní, které usnadní celkové ovládání telefonu. 2.2.4.2. Windows Mobile 6.5 6. října 2009 představil Microsoft Windows Mobile 6.5, nový název Windows Phone pro telefony s Windows Mobile. Nové služby jsou My Phone a obchod s aplikacemi Marketplace. Systém přináší upravený vzhled, který je lépe přizpůsobený pro ovládání prsty. Obrázek 2.3: Windows Mobile 6.5 Standard, obrazovka Dnes, Titanium 14

2.2.4.3. Windows Mobile 6.5.1 Windows Phone 6.5.1 byl neoficiálně portován na několik zařízení Windows Phone a přináší přátelštější rozhraní pro prsty. 2.2.4.4. Windows Mobile 6.5.3 Windows Mobile 6.5.3 byl představen v únoru 2010 jako první Windows Mobile smartphone. Tento operační systém znovu přináší přátelštější rozhraní pro prsty s několika novými funkcemi, jako jsou podpora pro multitouch nebo kompletní dotykové ovládání, a také novou sadu Office Mobile 2010. 2.2.4.5. Windows Mobile 6.5.5 Poslední build Windows Mobile a také verze 6, která se na mobilních telefonech používala zhruba 3 a půl roku přinesla již jen nepatrné změny.[1] 2.2.5. Windows Mobile 7 Windows Phone 7 byl v Evropě, Singapuru a Austrálii představen 21. října 2010, ve Spojených Státech a v Kanadě pak 8. listopadu 2010, zatímco zbytek světa následoval až v roce 2011. Microsoft měl původně v úmyslu pokračovat ze systému Windows Mobile do Windows Mobile 7, který byl založený na modernizaci platformy operačního systému Windows Mobile s kódovým označením Photon. Původní Photon a Windows Mobile 7 byli od té doby zrevidováni, nicméně Microsoft se rozhodl vytvořit novou mobilní platformu OS a představit Windows Phone 7 Series. Microsoft proto nazval operační systém z Windows Phone 7 Series Windows Phone 7. Během Mobile World Congress 2010 v Barceloně odhalil Microsoft podrobnosti o Windows Phone 7, který je vybaven novým operačním systémem a integrací se službami Xbox Live a Zune. Telefony s operačním systémem Windows Mobile 6.* nelze upgradovat na Windows Phone 7. [2] Windows Phone 7 má specifické minimální požadavky na zařízení s daným OS. Všechná zařízení musí mít: multi-dotykový displej (uznání čtyř doteků současně). Rozlišení displeje výběr ze dvou možností: 800 x 480 a 320 x 480; CPU s alespoň 1 GHz; 256RAM a 8Gb flash pamětí; podpora DirectX 9; GPS přijímač; 15

akcelerometry; FM radio; fotoaparát s bleskem a rozlišením minimálně 5 Mpx; elektronický kompas. Všechna zařízení by také měla mít 6 hardwarových tlačítek: 1. zapnutí/vypnutí: může mít více funkci vedle těch zakladních, např. blokaci zařízení, zapnutí a vypnutí displeje; 2. ovladání hlasitosti: slouží k nastavení hlasitosti; 3. kamera: toto tlačítko musí podporovat Half-way press a Full-way press. Stlačení do poloviny upraví zaostření, stlačení nadoraz pořídí fotografii. Mimo to se stisknutím tlačítka fotoaparátu zobrazí přislušná aplikace; 4. zpět: provádí krok zpět mezi aplikacemi a stránkami; 5. start: všechny aktivní aplikace se pozastaví a otevře se domovská stránka; 6. hledání: pomocí vyhledávače Bing. Obrázek 2.4: Windows Phone, obrazovka Start 16

3. Grafické knihovny 3.1. X3D X3D (Extensible 3D) je rozšiřitelný jazyk pro popis tří-dimenzionální scény, určený k vytvoření 3D grafiky na internetu. Pracovní návrh X3D byl poprvé představen na 7. mezinárodní konferenci "3D Web Technology" v USA v únoru 2002. Jedná se o ratifikovaný ISO standard, který poskytuje systém pro ukládání, získávání a přehrávání grafiky v reálném čase, to vše v rámci otevřené architektury pro podporu širokého spektra domén a uživatelských scénářů. Grafický formát X3D z velké části vychází z VRML (proto je také někdy nazýván VRML 3.0 ), ovšem opravuje některé jeho nedostatky a především umožňuje kromě původní syntaxe odvozené od Open Inventoru použít i syntaxi zápisu založenou na XML. V důsledku toho je X3D znamý jako nástupce VRML, je ovšem kompaktnější. Využítí XML přináší celou řadu předností, především jednoduché zpracování celého dokumentu pomocí velkého množství knihoven a programových API pro práci s XML (SAX a DOM existující snad pro všechny významné programovací jazyky), možnost poloautomatické serializace a deserializace prostorové scény do X3D, relativně snadné převody mezi X3D a dalšími formáty apod. Řada funkcí X3D může být použita ve vědecké vizualizaci, architektuře, lékařské vizualizaci, školení a simulaci, multimédiích, zábavě, vzdělávání apod. 3.1.1. Profily X3D Modulární architektura X3D má několik základních profilů. Jsou to Interchange (vzájemný), Interactive (interaktivní), Immersive (immersivní), MPEG-4 Interactive, CDF a Full (úplný). Interchange je základní profil pro komunikaci mezi aplikacemi. Tento profil podporuje geometrii, textury, základní osvětlení, a animace. Neexistuje žádný model pro spuštění renderování, takže použití a integrace do libovolné aplikace jsou velmi snadné. Interaktivní profil umožňuje základní interakce s 3D prostředím přidáním různých senzorů - uzly pro navigaci uživatele a interakce (např. PlanseSensor, TouchSensor, atd.), lepší načasování a další osvětlení (Spotlight, PointLight). 17

Immersivní profil umožňuje plnou 3D grafiku a interakci, včetně audio podpory, kolize, mlhy, a skriptování. MPEG-4 Interactive je menší verze Interaktivního profilu navržená pro vysílání (broadcast), kapesní zařízení a mobilní telefony. CDF (CAD Destilační Format) profil je stále ve vývoji. CDF by měl umožňovat překlad dat CAD do otevřeného formátu pro publikování a interaktivní média. Úplný profil zahrnuje všechny definované uzly, včetně NURBS, H-Anim a GeoSpatial komponentů. 3.1.2. Mobile X3D Jak již bylo řeceno výše, MPEG-4 Interaktivní Profil X3D je navržen pro menší aplikace, včetně mobilních. Tento profil je pečlivě vybranou podmnožinou obsahující sedmdesát X3D uzlů, které poskytují podporu pro základní geometrii, textury obrazu, animace, snímání a interakci s uživatelem. Malé rozměry X3D prohlížeče ukuzují, že mobilní X3D aplikace jsou možné, za použití X3D modelů, které fungují obdobně na stolních počítačích. V létě 2010 prezentovala studijní skupina Mobile X3D na schůzce Web3D Korea Chapter Meeting první příklad X3D na mobilním zařízení: Obrázek 3.1: ukázka MX3D na Windows Mobile 6.0 3 Hlavním cílem této skupiny je vytvořit pevný základ pro X3D tak, aby řádně podporoval 3D grafiku na mobilních platformách. Jedinou možností přehravání X3D na platformách Windows Mobile je BS Contact Mobile, který lze stahnout (testovací verzi) na oficialních stránkách BitManagementu. 3 X3D GPS Interface. Web3D Korea Chapter Meeting. July 29, 2010. The University of Suwon. Myeong Won Lee 18

3.2. Java3D Jáva 3D představuje cross platformní knihovnu k zobrazování trojrozměrné grafiky, která je samozřejmě popsána v jazyce Java. Tato knihovna byla poprve představena v prosinci 1998. Programy napsané v Java 3D mohou běžet na mnoha odlišných typech počítačů, menších zařízeních a přes internet. Knihovna tříd Java 3D poskytuje rozhraní, které je jednodušší než rozhraní mnoha jiných grafických knihoven, ale zároveň je dostačující k tvorbě dobrých her a animací. Java 3D staví na existujících technologiích jako je DirectX a OpenGL (v závislosti na platformě), takže programy neběží tak pomalu jak by se dalo očekávat. Java 3D také umožňuje začlenit objekty vytvořené 3D modelovacími nástroji ve formátech 3DS, OBJ, VRML a X3D. OS Windows Mobile v základu Java aplikace nepodporuje, ale Java běží za pomoci aplikace třetích stran, čímž se dá podpora Javy doinstalovat. Mezi nejpoužívanější emulátory patří IBM DELTA MIDP 2.0, který zvládá podporu Java verze 1.0 a 2.0, dále pak emulátory JavaMAN a Java Virtual Machine.[4] Obrázek 3.2: ukázka Java 3D na Windows Mobile 4, emulator Delta MIDP2.0 3.3. O3D 20. dubna 2009 představil Google ve spolupráci s Khronos Group open-source technologii O3D. O3D představuje JavaScript API, který umožňuje vytvořit interaktivní grafické 3D aplikace (hry, simulace, ukazkové modely, virtualní reality) pro jejich následné spuštění ve webovém prohlížeči. Jedná se nejen o návrh 3D API, ale i o jeho implementaci, kterou si můžete stáhnout do vašeho prohlížeče. Podporovány jsou prohlížeče 4 Tento obrázek byl převzat z http://smartmania.mobilmania.cz/ autor: Jiří Hrma 19

Firefox, Safari, Google Chrome a Internet Explorer. Pro zobrazení vysoce kvalitní 3D grafiky používá plugin O3D různé metody renderingu, a to výkon centrálního mikroprocesoru a grafické karty. Hlavní specialitou O3D je ale skutečnost, že se jeho skriptové aplikace píší pomocí speciálního API v běžném Javascriptu a v libovolném textovém editoru. Nic se nepřekládá, nic se nekompiluje. Obrázek 3.3: ukázka O3D Riad Haddad's walk-in movie store 5 O3D zatím nepodporuje žadné mobilní platformy. Koncem května 2010 Google oznámil, že O3D přešel z pluginu do knihovny JavaScript běžící nad WebGL. 3.4. GapiDraw Od roku 2002 se švědská společnost Develant Technologies AB zabyvá vývojem nové komplexní robustní grafické platformy GapiDraw. Tato platforma je cílena zejména na vývoj aplikací s vysokými nároky na rychlou grafiku pro zařízení s OS Windows Mobile. GapiDraw umožňuje využít hardwarovou akceleraci, pokud je dostupná. GapiDraw poskytuje vývojářům dvě základní rozhraní: knihovnu tříd GapiDraw a GapiApplication framework, které společně zprostředkovávají rozsáhlou funkcionalitu. Jedná se o placené řešení, základní licence se dá 5 Obchod s filmy, který získává data o DVD a Blue-ray z Amazonu. Je hezkou ukázkou toho, co umí O3D. Více na: www.3dmoviehaven.com/3ddvdstore.php 20

pořídit za $995, ale existuje testovací verze pro nekomerční použití, která má stejnou funkcionalitu jako verze základní. Obrázek 3.4: Ancient Evil. Od Pocket PC Studios. 3.5. WebGL WebGL, podobně jako O3D, představuje cross-platformní JavaScript API, který umožňuje vytvářet 3D grafiku v prohlížeči. Tento webový standard od Khronos Group byl odvozen z knihovny OpenGL ES 2.0 s cílem maximalizovat přenositelnost na mobilní zařízení. Toto nízkoúrovňové API poskytuje přístup k výkonu hardwaru přímo ze scriptů na webových strankách. Tato vlastnost umožňuje vytvářet 3D grafiku, která se bude aktualizovat v reálném čase přímo v prohlížeči. WebGL je webový standard, proto nepotřebuje žadné pluginy. V současné době je WebGL podporován v HTML 5 prohlížečích Mozilla Firefox, Google Chrome a Safari. Zatím bohužel není k dipozici podpora WebGL na platformách Windows Mobile. Důvodem je to, že nejsou mobilní HTML 5 prohlížeče, přestože Windows Mobile plně podporuje OpenGL ES. Mozilla před rokem vydala alfa verzi prohlížeče pro Windows Mobile, letos byl ale vývoj přerušen kvuli verzi Windows Phone. Hezkým přikladem WebGL na mobilním zařízení je Nokia 900 s OS Maemo: 21

Obrázek 3.5: ukázka WebGL běžící na Nokia 900. Hra Match3D 6. 3.6. OpenGL ES OpenGL ES je multiplatformní API pro programování 3D grafiky na různých vestavěných zařízeních (herní konzole, telefony, komunikátory, PDA, atd.). Jedná se o dobře definovanou podmnožinu OpenGL, která poskytuje flexibilní a výkonné nízkoúrovňové rozhraní mezi softwarem a hardwarem pro akceleraci grafiky. Samotný OpenGL představuje API pro programování 3D grafiky na klasických počítačích. Velkou výhodou je kompatibilita OpenGL ES s klasickým OpenGL. OpenGL ES má dva různé profily, Common a Common-Lite. Common-Lite profil se liší od Common profilu především tím, že je zaměřen na jednodušší třídu grafických systémů, které nepodporují high-performance floating-point výpočty. Common-Lite profil podporuje pouze příkazy s fixed-point argumenty, zatímco Common profil obsahuje také mnoho rovnocenných příkazů s floating-point argumenty. Dnes existují dvě verze OpenGL ES, jsou to OpenGL ES 1.x a OpenGL ES 2.x. 3.6.1. Verze 1.0-1.1 První verze OpenGL ES, 1.0, byla představena v roce 2003 a je založena na OpenGL 1.3, ale byly z ní odstraněny některé funkce: 6 Hra je dostupná na http://users.sch.gr//pavlos/webgl/triliza/ 22

Begin/end paradigma. Tato funkce již byla považována za zastaralou, jelikož upřednostňovala především vrcholové vektory. Quad, quad-strip a polygon drawing primitives. Tyto funkce byly odstraněny, jelikož primitives mohou být nyní sestaveny z trojúhelníků. Automatické generování texturových souřadnic. Jedno a trojrozměrné textury a krychlové čtvercové mapy, byly ponechány pouze dvourozměrné textury. Některá nastavení texturového prostředí, byly ponechány pouze jednodušší funkce jako je replace, blend, add a modulate. Display listy, důvodem je jejich složitá implementace. Obrázek 3.6: Fixed function pipeline v OpenGL 1.5 a OpenGL ES 1.1 [13] GLES 1.1 byla uvedena v roce 2004 a je založena na OpenGL 1.5. Nejdůležitějšími prvky, které byly nově přidány a GLES 1.0 je neobsahovala, jsou vertex buffer objects a podporují veškerá pokročilá nastavení prostředí textur v OpenGL 1.5. 3.6.2. Verze 2.0 Poslední verze GLES 2.0 byla aktualizována v roce 2007 [16]. Je založena na OpenGL 2.0 a na vysokoúrovňových shaderech. Na rozdíl od OpenGL 2.0 však GLES 2.0 definitivně 23

přestává podporovat fixed function pipeline. Důsledkem toho je, že GLES 2.0 není zpětně kompatibilní s předchozími verzemi GLES. Shaders jsou specifikovány ve verzi GLSL zvané GLSL ES. GLES 2.0 podporuje pouze Common profile a podpora fixed point byla omezena na vrcholové vektory. Obrázek 3.7: Programovatelná linie OpenGL ES 2.0 [xiii] Nejpodstatnější funkce, které byly z OpenGL 2.0 odstraněny: Begin/end-paradigma. Speciální vrcholové vektory pro atributy jako pozice, normály a texturové souřadnice. Tyto funkce byly odstraněny ve prospěch obecné funkce glvertexattribpointer. Quad, quad-strip a polygon drawing primitives. Veškeré funkce, které upravují transformace aktuálních matic. Náhled modelu a projekční matice byly rovněž odstraněny, programátoři si nyní vybírají, jaké transformace potřebují a předávají je jako uniforms do shaderů. Automatické generování texturových souřadnic. To je nyní možno realizovat přes vertex shaders. Veškeré funkce, které operují se světlem a stavem materiálu. Programátoři implementují zákaznické řešení osvětlení se shadery a feed daty do shaderů s generickými uniformy a atributy vrcholů. Jedno a trojrozměrné textury, přičemž byly ponechány pouze dvourozměrné textury a čtvercové mapy. Nastavení texturového prostředí. To již není potřeba, protože shadery jsou přímou náhradou a jsou mnohem výkonnější. Nastavení mlhy, nyní realizované pomocí shaderů. Display listy. GLES 2.0 přímo podporuje framebuffer objects, které jsou dostupné pouze jako dodatek k OpenGL 2.1. Framebuffer objects umožňují vytváření několikanásobných off-screen framebuffers a jejich renderování. To umožňuje rychlé renderování textur a podporu 24

renderování větších textur než je framebuffer na obrazovce. To je důležité zejména při renderování map, prostředí map nebo vytváření dalších efektů jako jsou odrazy, refrakce nebo postprocesing. GLSL ES je velice podobný GLSL, ale jsou mezi nimi dva hlavní rozdíly: v GLSL ES byly odstraněny speciální proměnné, které jsou vázány na fixed function pipeline, a naopak byla přidána klíčová slova pro specifikaci proměnných (lowp, mediump a highp). 3.7. M3G Mobile 3D Graphics API nebo M3G představuje standard pro programování 3D grafiky v jazyce Java. Jedná se o API, který je určen pro mobilní zařízení podporující platformu J2ME (verze jazyka Java pro mobilní zařízení). Tento standard byl vyvinut expertní skupinou JSR s cílem vytvořit malý, rychlý a jednoduchý systém, který by mohl fungovat na různých zařízeních podporujících Java programování. Tento API je zaměřen na třídu CLDC (Connected Limited Device Configuration) zařízení, která mají obvykle velmi malý výpočetní výkon a paměť a žádnou hardwarovou podporu pro 3D grafiku nebo floating-point operaci. API je nicméně vhodné i pro tzv. high-end zařízení, která mají hardwarovou podporu pro 3D grafiku a operaci floating-point. Pro splnění širokého spektra potřeb 3D grafiky na mobilnich zařízeních je M3G API rozdělen do 2 typů: vysokoúrovňového (retained mode) a nízkoúrovňového (immediate mode) API. V režimu immediate mode lze přímo kreslit 3D objekty. V retained mode režimu se pracuje s grafy scény, lze tedy nadefinovat a zobrazit celý svět (World) s 3D objekty, včetně informací o jejich vzhledu. Můžete použít buď jeden režim, nebo oba současně, v závislosti na úkolu. M3G lze představit jako objektově-orientované rozhraní OpenGL ES na nízké úrovni (low-level nebo immediate mode) a jako odkaz na nástroje pro vykreslování 3D grafiky na vysoké úrovni (high-level nebo retained mode). Tímto nástrojem může být libovolný software, který podporuje export do speciálního formátu.m3g, např. Autodesk 3ds Max, Autodesk Maya nebo Blender. Když skupina JSR vyvíjela M3G, jedním z jejích cílů bylo také implementovat API nad OpenGL ES, za účelem zvýšení použitelnosti API na různých typech zařízení. Téměř všechny důležité funkce OpenGL ES verze 1.0 jsou v M3G podporovány, avšak některé byly buď zjednodušeny, např. blending a test hloubky ostrosti, anebo zcela vypuštěny, např. tečky a čáry (lines). Bylo také zrušeno vše, co je volitelné v OpenGL ES a méně podporované funkce, jako např. Stencil buffering, což nabídlo vývojářům méně roztříštěnou platformu. Objektově orientované rozhraní M3G sestává ze 30 tříd a kolem 400 metod, které mohou být použity ke kreslení složitých animovaných 3D scén. M3G byl vyvinut v rámci Java Community Process jako JSR 184, aktuální verze je 1.1 M3G, zatímco verze 2.0 (JSR 297) je od roku 2007 ve vývoji. 25

3.8. XNA XNA (XNA's Not Acronymed) je sada nástrojů a technologií od společnosti Microsoft, která významně usnadňuje rozvoj a správu počítačových her. XNA byla vydaná 24. března 2004 na Game Developers Conference v San Jose v Kalifornii. Všechny komponenty XNA Frameworku lze relativně snadno rozdělit do 4 úrovní abstrakce (obr. 3.8): Platform nejnižší úroveň, která představuje wrapper nad platformě závislého API, např. DirectX (Direct3d, XINPUT, XACT); Core Framework - dolní platformě nezávislá úroveň XNA, která poskytuje základní funkčnost. Je umístěna v sestavě Microsoft.Xna.Framework.dll a obsahuje 5 komponentů: Graphics (práce s grafikou), Audio (práce se zvukem), Input (Práce s I/O zařízením), Math (matematické výpočty), Storage (práce se souborovým systémem). Extended Framework sada vysokoúrovňových tříd, které řeší typické problémy pro vývojáře, např. inicializaci grafického zařízení a export modelů a textur z grafických editorů. Ve skutečnosti lze Extended Framework považovat za univerzální entry-level herní engine (Game Engine). Je umístěna v sestavě Microsoft.Xna.Framework.Game.dll. Game tato úroveň představuje všechny hry vytvořené vývojáři. Sada XNA přichází s několika jednoduchými příklady her (Starter Kits), které lze použít jako základ pro vlastní aplikace. Obrázek 3.8: Architektura XNA. Pomocí XNA lze vyvíjet hry pro Windows (XP, Vista, 7), XBOX360, WindowsPhone 7, a Zune (ovšem pouze 2D, protože současné modely nepodporují 3D u Zune). XNA se programuje c C#. 26

4. Praktické využítí knihoven 1 4.1. Začínáme v M3G Balíček M3G byl zpočátku vyvinut pro grafiku na menších zařízeních. M3G se programuje v jazyce Java. Tento standard funguje nad J2ME (Java 2 Platform, Micro Edition), která představuje prostředí pro vývoj aplikací Java pro malá výpočetní zařízení. J2ME sestává z konfigurace a profilu. Obsahuje 2 konfigurace - CDC a CLDC a profil MIDP. Všechny aplikace pro mobilní zařízení se programují nad CLDC/MIDP, která je v současné době podporována většinou mobilních zařízení. MIDP (Mobile Information Device Profile) je aplikační rozhraní, které definuje jakým způsobem softwarové aplikace spolupracují s mobilními telefony. Umožňuje vytvářet aplikace pro mobilní telefony. Aplikace, která je vytvořena podle tohoto standardu se nazývá MIDlet a je umístěna v balíčku javax.microedition.midlet. Tři možné stavy běžící MIDlet aplikace: paused: MIDlet běží, ale není aktivní. active: MIDlet je aktivní. destroyed: MIDlet byl zastaven a je připraven zahájit čištění. V MIDlet aplikaci fungují hry a grafika pomocí 2 tříd: MIDlet a Canvas. Funkce MIDlet již byla popsána výše. Canvas představuje prázdnou obdélníkovou oblast displeje do které bude aplikace vykreslovat grafiku. Canvas poskytuje vývojářům metody ovládání herních akcí, key event a pointer event. 4.2. Nastavení prostředí Je známo, že programování jakékoli aplikace vždy vyžaduje nastavení vlastního prostředí. Pro Java s podporou M3G potřebujeme postupně nainstalovat: - JDK (Java SE Development Kit) 1.6 nebo vyšší [i] - Active Sync 4.5 nebo Windows Mobile Device Center pro Windows Vista/7 [ii] - SDK (Software Development Kit) [iii] Existuje více druhů SDK: Sun Java ME SDK 3.0, NetBeans 7.0 IDE, MOTODEV Studio for Java ME, a též SDK od mobilních výrobců NOKIA, Sony Ericsson a LG. Z uvedených SDK jsem zvolila Sun Java SDK 3.0. Tento SDK zahrnuje vývojové prostředí, několik typů emulátorů, příklady Java aplikací, a navíc dokáže ladit aplikaci v reálném mobilním zařízení. Tato funkce je ovšem k dispozici pouze pro zařízení s Windows Mobile 6. 27

Obrázek 4.1. : Sun Java SDK 3.0[i] 4.3. New Project Vytvoříme nový projekt: File New Project MIDP Application: Obrázek 4.2. : Sun Java SDK, wizard nového projektu. 28

Napíšeme název nového projektu (popř. nové umístění) Next: Obrázek 4.3. : Sun Java SDK, wizard nového projektu. Pokračujeme dál a vybereme typ zařízení (emulátor), konfiguraci a profil. Obrázek 4.4. : Sun Java SDK, wizard nového projektu, výber nastavení. 29

Vytvoří se výchozí Hello World projekt. Spustíme projekt a vidíme naběhnutí emulátoru. Obrázek 4.5. : Sun Java SDK, spouštění projektu, a Hello World okno v emulatore. Pokud jsme zapomněli na některé nastavení nebo udelali chybu, klikneme pravým tlačítkem myši na project Name Properties a zvolíme nové nastavení: Obrázek 4.6. : Sun Java SDK, okno vlastnosti projektu 30

Po spuštění emulátoru v dist složce projektu se vytvoří 2 soubory: *.jar a *.jad. Jar soubor představuje archiv, který obsahuje soubory s třídami, zdroje a manifest. Jad soubor (deskriptor) obsahuje popisné informace, které přístroji pomohou stáhnout MIDlet. Velikost aplikace a URL *.jar MIDletu musí být popsány v Jad souboru. 4.4. Java a Windows Mobile Při programování v Javě pro WM jsem se setkala se dvěma hlavními problémy: 1. Zjistila jsem, že vlasnost J2ME SDK, kterou jsem potřebovala mně nevyhovovala. Java SDK 3.0 nabízí možnost CLDC emulace na WM 6.0, ale tento balíček nepodporuje standard JSR 184(M3G), proto bylo od vývoje aplikace s emulátorem na zařízení WM upuštěno. Jedinou možností je programování M3G v uvedeném SDK za použití dostupných emulátorů, a poté ruční spuštění programu na WM zařízení. 2. Microsoft Javu nepodporuje, a to z toho důvodu, že Java byla od počátku konkurentem.net (Compact) frameworku. To znamená, že MIDlety nepoběží na WM zařízeních bez dodatečné pomoci. Onou pomocí jsou tzv. MIDlet manažery od třetích stran. 4.5. MIDlet Managers Existují 2 MIDlet emulátory, které podporují M3G Jblend[iv] od Aplix a TAO Intent[v]. Aplix Jblend je kompatibilní s WM 5 6 (Professional a Smartphone) a není kompatibilní s Windows Mobile Classic. MIDlet od Aplix má podporu M3G, ale neumí přehrávat MP3/midi zvuky. Aplix Jblend lze nainstalovat na paměťovou kartu. Podporuje softkey. TAO Intent podporuju většinu WM zařízení. Existují 2 verze MIDletu - 10.1 (pro WM2003(SE) a MS Smartphone) a 11.1 (pro WM5+ & Pocket PC). TAO Intent má oproti Jblendu podporu MP3, ovšem nedostatečnou. Stejně jako Jblend lze TAO Intent nainstalovat na paměťovou kartu. Nepodporuje softkey. Vývoj TAO Intent se od roku 2007 zastavil. Výběr MIDletu zde závisí na zařízení. Vlastním mobilním zařízením HTC Touch(Elf) s Windows Mobile 6.0 Professional. Ze dvou MIDlet manažerů dokázal TAO Intent spustit MIDlety s M3G. 4.6. Instalace a spuštění MIDletu Pro instalaci MIDlet emulátoru stačí nakopírovat soubor *.cab na zařízení a spustit, WM 31

ho sám automaticky nainstaluje. Po instalaci emulátoru na zařízení sdružuje MIDlet manažer soubory *.jar a *.jad na sebe, proto pro spuštění stačí kliknout na *.jar nebo *.jad soubor v průzkumníku Windows. MIDlety lze také spouštět přímo z emulátoru. Pro tuto funkci je třeba otevřít emulátor, stisknout Menu Install Local a emulátor již najde všechny *.jar a *.jad soubory v zařízení nebo na paměťové kartě. Z vypsaného seznamu vyberete potřebné MIDlety a stisknete Send. Po instalaci v emulátoru se objeví MIDlet s konkrétní ikonou. Obrázek 4.7. : TAO Intent běžící na mem HTC Touch (Elf) 4.7. Immediate Mode vs Retained Mode Jak již bylo zmíněno výše, M3G je soubor tříd umístěných v balíčku javax.microedition.m3g, a ve skutečnosti je wrapper knihovny OpenGL ES. Balíček obsahuje 30 tříd a má 2 režimy aplikace: Immediate mode režim, v němž lze přímo vytvářet a manipulovat s 3D objekty. Základní třídy v tomto režimu jsou: VertexArray, VertexBuffer, IndexBuffer, Appearance a Transform. Triangle Strip je jediné podporované primitivum v tomto řežimu. Práce s velkým světem pomocí tohoto režimu je poměrně pracná. Retained mode tento režim je na vyšší úrovni abstrakce ve srovnání s režimem Immediate. Základní třídy tohoto režimu jsou potomky třídy Node, pomoci nichž lze snadno postavit nebo stáhnout komplexní graf scény. Práce s tímto režimem je mnohem snadnější a intuitivně jasnější, výstup grafiky se provádí pomocí přikazu graphics3d.render(world), který jedním voláním provede výstup celého grafu scény na obrazovku. 32

Obrázek 4.8. Příklad M3G - Immediate Mode běžící na emulátoru. Krychle je vytvořena pomocí Triangle Strip, poté je na ni aplikována textura. Jako pozadí je nastaven obrázek. 4.7.1. Retained Mode Programování v retained mode začíná s vývojem 3D světa. Svět musí být ve formátu *.m3g. Bohužel neexistují žádné 3D editory, které by přimo editovaly modely v tomto formátu. Lze ovšem použít široce znamé 3D redaktory a konvertory, které jsou navrženy pro převod modelu z nativního formátu editoru do formátu Mobile 3D Graphics. Pro modelování scény jsem použila Autodesk 3ds Max[vi], který od verze 2008 umí naexportovat scénu do M3G. Jedinou možností pořízení Autodesku 3ds Max je zkušební verze dostupná po dobu 30 dnů. Existuje také 3D editor Blender[vii], který je zcela zdarma, ale nemá bohužel zabudovaný konvertor do M3G. Konvertor je také dostupný [viii], ale občas při importu modelu nefunguje správně s texturami. Poslední věcí, kterou by vývojář mohl potřebovat je M3GViewer[ix]. Je to program volně ke stažení, který slouží pro zobrazení struktury scény v formátu *.m3g. Umožňuje vybrat a uložit jakoukoli část scény do samostatného souboru pro další použiti ve vlastním programu. 4.7.2. Píšeme aplikaci v Retained Mode Nyní napíšeme triviální aplikaci, ve které bude rovina po níž lze chodit a zobrazíme animovaný objekt. Nejprve potřebujeme vymodelovat 3D scénu a naexportovat ji do M3G. Vymodelovala jsem Windows Logo, které je umistěno na texturované rovině. 33

Obrázek 4.9.. Scéna v 3ds Max. Exportovaný soubor najdeme ve složce..\documents\3dsmaxdesign\export. Potřebujeme ho přenést do složky \JavaMESDKProjects\NazevProjektu\res\res. Složka \res je umistěna ve všech externích souborech, které budeme načítat do naší aplikace. Přidání složky do našeho projektu: - pravým tlačítkem myši klikneme na složku Resources v okně našeho projektu - v otevřeném okně vybereme složku \res, kterou jsme vytvořili výše - tato složka a soubory v ní se musí zobrazit v okně Projects ve složce Resources. Retained Mode programování začiná s nastavením třídy MIDlet. MIDlet spustí Canvas (plátno) kde bude naše grafika vykreslena. Canvas zavolá metodu paint( ) a provede všechny inicializované operace. Načítání naší scény (World) provede metoda Load. Tato metoda vždy vrátí pole Object3D: try Object3D[] buffer = Loader.load("/res/mymap.m3g"); for(int i = 0; i < buffer.length; i++) if(buffer[i] instanceof World) 34

buffer = null; zworld = (World)buffer[i]; break; Vytvoříme světlo a přidáme ho do grafu scény: Light zlight = new Light(); zlight.setmode(light.ambient); // Ambientní světlo zlight.setintensity(10.0f);// Přidáme intenzitu zworld.addchild(zlight); //Přidáme do Světa v grafu scény Nyní bychom chtěli přidat do aplikace nějakou aktivitu, umožnit aplikaci pohybovat se ve scéně. Proto je třeba rozbalit kameru ze Světa(World) pomocí getactivecamera(). To nám vrátí kameru, kterou jsme naexportovali v souboru *.m3g. zcamera = zworld.getactivecamera(); Dále naučíme kameru pohybu a otáčení: if(zkey[left]) camrotation += 5.0f; else if(zkey[right]) camrotation -= 5.0f; zcamera.setorientation(camrotation, 0.0f, 1.0f, 0.0f); // Výpočet trigonometrie pro pohyb kamery double radians = Math.toRadians(camRotation); camanglesin = Math.sin(radians); camanglecos = Math.cos(radians); // Nastavíme orientaci if(zkey[up]) // Krok dopředu zcamera.translate(-2.0f*(float)camanglesin, 0.0f, -2.0f*(float)camAngleCos); else if(zkey[down]) // Krok dozadu zcamera.translate(2.0f*(float)camanglesin, 0.0f, 2.0f*(float)camAngleCos); if(zkey[fire]) RModeMidlet.die(); // stisknutím tlačítka FIRE, se MIDlet zastaví Přidáme animaci Windows Logo. Potřebujeme najít objekt Logo ve scéně za použití metody find( ): Mesh zlogo = (Mesh) zworld.find(45); zlogo.postrotate(-2.0f, 0.5f, 0.5f, 1.0f); Metoda find() hledá objekt Logo podle jeho ID ve scéně, zjistit ID nám pomůže M3GViewer. Pro rendering se využívá nejvýkonnější třída Graphics3D. Zde probíhá veškeré vykreslování a řízení uvedené operace: zgraphics3d = Graphics3D.getInstance(); zgraphics3d.bindtarget(graphics); zgraphics3d.render(zworld); zgraphics3d.releasetarget(); Celý postup renderingu se provádí ve 4 krocích: 1. Vytvoření Graphics3D objektu 2. Spojení (bind) 2D grafického objektu pomocí spojení Graphics3D objektu a 2D bufferu 3. Vyrenderování objektů 4. Uvolnění (release) grafického objektu - tento krok je obráceným krokem 2. 35

Posledním krokem bude vytvoření vlákna (Thread s metodou run( )), které bude volat metodu repaint(): Thread mythread = new Thread(this); zrunning = true; zdone = false; mythread.start(); // Start /** Run, spustí celé vlákno. */ public void run() while(zrunning) try // Volá metodu process(počítá klíče(keys) vstupní data z kláves) process(); // Kreslíme všechno draw(getgraphics()); flushgraphics(); Mesh zlogo = (Mesh) zworld.find(45); zlogo.postrotate(-2.0f, 0.5f, 0.5f, 1.0f); repaint(); try Thread.sleep(30); // Sleep, aby se zabránilo vyčerpání zdrojů catch(exception e) catch(exception e) e.printstacktrace(); zdone = true; // oznámí dokončení Obrázek 4.10.. Výsledek příkladu na M3G Retained Mode. 36

5. Praktické využítí knihoven 2 5.1. Začínáme s OpenGL ES Na obě verze OpenGL ES (1.x a 2.x) lze pohlížet jako na samostatné knihovny, a to z toho důvodu, že každá verze byla vyvinuta z různých verzí Open GL. Obrázek 5.1. : hierarchie vývoje OpenGL ES. OpenGL ES 1.1 zdůrazňuje hardwarovou akceleraci API. Tato verze knihovny poskytuje rozšířenou funkcionalitu, lepší kvalitu obrazu a optimalizace pro zvýšení výkonu tím, že sníží využití paměťové propustnosti (memory bandwith) z důvodu úspory energie. Open GL ES 1.1 implementuje fixed function pipeline, to znamená, že lze nastavit různé parametry, jako je pozice světla, barva, atd., ale nelze řešit jak bude vypočítána barva každého pixelu. Oproti tomu OpenGL ES 2.0 implementuje programmable graphics pipeline, což umožňuje napsání vlastních programů shaderu (shader programms), které vypočítají barvy pixelu. OpenGL ES 2.0 se skládá ze dvou specifikací: OpenGL ES 2.0 API Specification a OpenGL ES Shading Language Specification (OpenGL ES SL). Verze 2.0 není zpětně kompatibilní s verzí OpenGL 1.1. 37

5.2. OpenGL ES a Windows Mobile OpenGL ES není Windows Mobile API, a to z důvodu obchodní výhody, protože Microsoft podporuje vlastní DirectX API. Existují ale mobilní zařízení, která mají zabudovanou podporu OpenGL ES, např. HTC (modely: Touch HD, HD2, Diamond, Touch Pro), Toshiba, Acer. Na různých zařízeních jsou tedy podporovány různé verze OpenGL ES. Mezi nimi má např. HTC HD2 podporu obou verzi (1.1 a 2.0) a běží na Windows Mobile 6.*. V případě zařízení, které nemá zabudovanou hardwarovou podporu OpenGL ES 2.0, neexistuje jiné řešení. U verze OpenGL 1.1 je možné přidat softwarovou implementaci knihovny pomocí open source knihovny Vincent[x]. Tato knihovna přichází s funkcí správy oken, a tím umožňuje snadné a rychlé nastavení aplikace. Pro správu oken a řízení lze připojit knihovnu GLUT ES; analog GLUT pro OpenGL pouze pro menší zařízení. 5.3. Nastavení prostředí Pro vývoj aplikace Windows Mobile je potřeba následující: - Microsoft Visual Studio 2005/2008[xi] - Windows Mobile 6 SDK Tools (professional podporuje displeje Touch, zahrnuje Emulator, výběr závisí na cílovém zařízení)[xii] - Microsoft.NET Compact Framework 3.5[xiii] - Implementace OpenGL ES Z výše uvedených postupně nainstalujeme první tři programy. Jedná se o běžné instalace systému Windows. 38

Obrázek 5.1. : Start Page Visual Studio 2008. Nyní je důležitý krokem výběr verze OpenGL ES k programování. Pro OpenGL ES 1.1 je potřeba: - Vincent 3D Rendering Library (UG nebo GLUT ES[xiv] pro okno OpenGL) - nebo PowerVR OpenGL ES 1.1 SDK[xv], jiná implementace OpenGL ES 1.1 - Obyčejný WM emulátor (který již existuje v WM 6 SDK) Pro OpenGL ES 2.0: - PowerVR SGX OpenGL ES 2.0 SDK[xv] - ARM OpenGL ES 2.0 Emulator[xvi] - nebo AMD OpenGL ES 2.0 Emulator (osobně tento emulátor používám, bohužel nyní již není podporován AMD, jedinou možností je stažení poslední verze od vývojářů) 5.3.1. Výběr správné verze OpenGL ES 2.0 představuje mocné prostředí pro vývoj vysoce kvalitní grafiky, což je umožněno díky programovatelné API, o to je ovšem komplikovanější. Největším problémem jsou nedostatečně podporované emulátory pro vývoj na WM. V dnešní době se pouze PowerVR SDK umí připojit k bežnému WM emulátoru, a to jen pro OS Windows Mobile Standart 6.1. Podmínkou je podpora OpenGL 2.0 grafickou kartou počitače. Obdobně fungují také PC emulátory od AMD a ARM. Tyto emulátory běží na většině grafických karet Radeon a Nvidia, ovšem ne na Intelu. OpenGL ES 1.1 je více příjemná k programování, její syntaxe se příliš neliší od OpenGL 1.*. Tato verze prohrává s ES 2.0 v kvalitě grafiky, ale má tu výhodu, že je lépe přenositelná, protože lze její podporu doplnit knihovnou Vincent 3D Rendering Library. Z toho důvodu byla jako přiklad v této bakalářské práci zvolena verze OpenGL ES 1.1 se zmíněnou knihovnou. 5.3.2. Instalace Vincent 3D Rendering Library K instalaci je potřeba stáhnout Vincent 3D a GLUT ES včetně knihovny GLU ES. Rozbalíme archivy a postupně nakopírujeme soubory pro umístění do SDK, a to v následujícím pořadí: - všechny soubory ze složky ArchivVincent/include/ do sdk/pocketpc/include/armv4i - všechny soubory kromě libgles_cm.dll ze složky ArchivVincent /bin/arm/debug/ do /sdk/pocketpc/lib/armv4i - všechny soubory kromě libgles_cm.dll ze složky ArchivVincent/bin/emu/Release do /sdk/pocketpc/lib/emulator - všechny soubory ze složky GLUTES/Inc do sdk/pocketpc/include/armv4 - všechny soubory ze složky GLUES do sdk/pocketpc/include/armv4 39

- stáhneme zkompilovanou knihovnu glutes_static.lib pro ARM CPU zde[xvii] a aktualizujeme tento soubor ve složce SDK/PocketPC/Lib. 5.4. New project a nastavení emulátoru Vytvoříme nový projekt: File New Project. V otevřeném okně vybereme Visual C++ Smart Device Win32 Smart Device Project a zadáme název projektu: Obrázek 5.2. : Visual Studion 2008, wizard nového projektu Pokračujeme dále (Next). V dalším okně je třeba zvolit platformu pro práci, např. Windows Mobile 6.0 Professional SDK: 40

Obrázek 5.3. : VS2008, wizard nového projektu, výber SDK Stiskněte Next a dostanete do posledního okna Wizardu, kde výberte Windows application: Obrázek 5.4. : VS2008, wizard nového projektu, výber typu aplikaci 41

Vytvoří se šablonový projekt, který je třeba ještě nastavit pro emulátor. V horní části Visual Studio se lze podívat pro jaké zařízení emulátor běží: Obrázek 5.5. : VS2008, nový projekt. Spustíme Debug(F5) a naběhne emulátor s prázdným oknem: Obrázek 5.6. : Emulator WM SDK 6 Proffesional 42

Nastavíme sdílenou složku mezi emulátorem a PC: Výběr File Configure ukázání cesty k Shared Folder: Obrázek 5.7. : vlastnosti Emulatoru - Do nové sdílené složky nakopírujeme soubory libgles_cm.dll ze složky ArchivVincent/bin/arm/Debug, a glutes.dll ze složky glutes-1.11\lib\ppcarmv4rel V posledním kroku je nutné přenést všechny soubory ze sdílené složky do složky Windows na zařízení. Na emulátoru proto otevřeme Start File Explorer My Device Storage Card: Obrázek 5.6. : File explorer Emulatoru 43