31
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Zavod za telekomunikacije SEMINARSKI RAD 3D grafika na mobilnim platformama Miran Mošmondor Mentor: Prof. dr. sc. Igor S. Pandžić Zagreb, rujan 2003.

Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

Embed Size (px)

Citation preview

Page 1: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

Zavod za telekomunikacije

SEMINARSKI RAD

3D grafika na mobilnim platformama

Miran Mošmondor

Mentor: Prof. dr. sc. Igor S. Pandžić

Zagreb, rujan 2003.

Page 2: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

Ime i prezime: Miran Mošmondor

Naslov rada: 3D grafika na mobilnim platformama

Sažetak:

U prvom poglavlju opisana su dva standarda sučelja za 3D grafiku na mobilnim

telefonima. OpenGL ES je grafičko sučelje niže razine, dok je Java 3D Micro Edition

za mobilne platforme standardno sučelje više razine, koje se naslanja na OpenGL ES.

U drugom poglavlju opisane su programske implementacije koje omogućuju prikaz

3D grafike na mobilnim platformama kao što je X-Forge, Swerve, Mascot Capsule

Engine i DieselEngine. Te implementacije su vlasnički orijentirane, ali su im u

nekim slučajevima sučelja kompatibilna s nekim standardnim sučeljem.

U trećem poglavlju objašnjena je sklopovska podrška 3D grafici na mobilnim

uređajima na konkretnom primjeru ARM procesora s MBX 3D jezgrama.

Na kraju je detaljno opisan način razvijanja 3D aplikacije za mobilne platforme

korištenjem DieselEngina SDK (Software Development Kit).

Smjer: Telekomunikacije i informatika

Mentor: prof. dr. sc. Igor S. Pandžić

Rad predan: 22.9.2003.

Ocjena :

Page 3: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

Sadržaj:

Uvod 1 1. Standardna programska sučelja za 3D grafiku na mobilnim platformama 3 1.1. OpenGL ES (OpenGL for Embedded Systems) 3 1.2. Grafičko sučelje za Java 2 Micro Edition na mobilnim platformama 5 2. Ostala programska sučelja za 3D grafiku na mobilnim platformama 7 2.1. X-Forge 7 2.2. Swerve 9 2.3. Mascot Capsule Engine 11 2.4. DieselEngine 13 2.4.1. DieselCommon 13 2.4.2. DieselGraphics 13 2.4.3. Diesel3D 14 2.4.4. DieselInput 15 2.4.5. DieselSound 15 3. Sklopovska podrška 3D grafici na mobilnim platformama 16 3.1. ARM procesori s 3D grafičkim akceleratorom 16 3.1.1. ARM MBX 3D Akceleracija 17 3.1.2. Performanse 19 4. Primjer razvijanja 3D aplikacija na mobilnim platformama korištenjem DieselEngina

20

4.1. Generiranje 3D sadržaja korištenjem DieselEngina i Nokia Series 60 SDK 21 4.2. Generiranje 3D sadržaja za Sony Ericsson P800 26 Zaključak 27 Literatura 28

Page 4: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

1

Uvod Interaktivna 3D grafika danas sve više prožima svijet zabave te postaje njegov sastavni dio. Velike prihode ostvaruju oni sektori koji omogućavaju stvaranje bogatog i uzbudljivog 3D aplikacijskog sadržaja koji krajnjeg korisnika uranjaju u virtualni svijet. To se ponajprije odnosi na igre za konzole i stolna računala. Upravo zbog značajnog porasta prihoda kojeg ostvaruju takvi sadržaji oni se nastoje omogućiti i na mobilnim platformama. Trenutno u svijetu postoji oko 120 milijuna igrača na mobilnim platformama, a taj će se broj do 2006. godine sigurno povećati. Stručnjaci predviđaju moguće povećanje dohotka od igara na mobilnim platformama na 17.5 milijardi dolara do 20061. Unatoč velikom napretku u tehnologiji, mobilni terminali su još uvijek puno slabijih mogućnosti nego stolna računala. Rade na manjoj brzini, imaju manju veličinu i rezoluciju zaslona, te imaju manje raspoložive memorije za pokretanje i pohranu programa. Usprkos nedostacima u smislu performansi, mobilni terminali imaju jednu veliku prednost pred stolnim računalima. Oni su po svojoj definiciji prijenosni. To znači da su uvijek dostupni i mogu se koristiti bilo kada i bilo gdje. Kako raste tržište mobilnih uređaja, tako su potrebni sve bolji i bogatiji sadržaji na njima. Na početku bili su omogućeni samo obični tekstualni sadržaji, dok se sada sve više radi na dostavljanju višemedijskih sadržaja kao što su zvuk, video, 3D igre i općenito 3D interaktivna grafika u realnom vremenu. (Slika 0.1)

Slika 0.1 Dostavljanje višemedijskih sadržaja na mobilne platforme

1 Izvor: Datamonitor – ‘Global Wireless Gaming, August 2001.

Page 5: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

2

Tehnologija, tržište i komercijalne mogućnosti već danas omogućuju dostavu takve interaktivne 3D grafike na mobilne platforme. Ključne tehnologije koje to omogućuju su razvoj zaslona i mobilnih uređaja, povećavanje njihove procesorske moći, te razvijanjem standarda za 3D grafiku. Značajni napredak postignut je upravo u standardizaciji programskog sučelja. Tako je potkraj srpnja 2003. godine objavljen standard za 3D grafičko sučelje niže razine OpenGL ES. Java 3D Micro Edition za mobilne platforme je 3D grafičko sučelje više razine, a trenutno je u završnoj fazi standardizacije. I tehnologija je doživjela značajni napredak. Tako je Mitsubishi Electronic već u travnju 2003. godine objavio prvu procesorsku jezgru s podrškom za 3D grafiku na mobilnim platformama. Zasloni također postaju sve kvalitetniji. Na slici vidi se porast isporuke zaslona za mobilne telefone po kvartalima od 2001. godine2.

Slika 0.2 Isporuka zaslona za mobilne telefone po kvartalima

2 Izvor: DisplayResearch Inc.

Page 6: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

3

1. Standardna programska sučelja za 3D grafiku na mobilnim platformama 1. 1 OpenGL ES (OpenGL for Embedded Systems) Kronosova grupa je nezavisni i neprofitni konzorcij kojeg su u siječnju 2000. godine osnovale vodeće svjetske kompanije na području grafike i digitalnih medija s ciljem stvaranja i razvoja bogatih medijskih sadržaja i to kroz razvoj otvorenih standarda za API (Application Program Interface) na različitim platformama i uređajima. Takvi otvoreni standardi su danas neophodni za razvoj kompatibilnost između sklopovlja, platformi i aplikacija zbog brzih promjena u medijskim tehnologijama i zahtjevima tržišta. Članovi konzorcija uviđaju i mogućnost velikih prihoda u dostavljanju takvih bogatih 3D aplikacija na nove uređaje, te su svjesni hitnosti definiranja grafičkih sučelja s velikim 2D i 3D mogućnostima. Kronosova grupa se sastoji od radnih grupa za OpenML, OpenGL te radne grupe za marketing. U njima mogu sudjelovati predstavnici kompanija sa takozvanim Contributing Membershipom. Te kompanije su 3d4W, Bitboys Oy, Fathammer, Fuetrek, HI Corporation, Hybrid Graphics, MediaQ, Mitsubishi Electric, Seaweed Systems, Superscape, Symbian, Texas Instruments, Tungsten Graphics, Vicarious Visions & Yumetech. Odbor direktora čine predstavnici kompanija s Promoting Membershipom. Te kompanije su 3Dlabs, ARM, ATI, Discreet, DVS, Ericsson Mobile Platforms, Imagination Technologies, Motorola, Nokia, RealVision & SGI. Oni definiraju ciljeve, prioritete i akcije konzorcija te su zaduženi za stvaranje i ratificiranje specifikacija za API. Rezultat rada konzorcija su specifikacije OpenML i OpenGL ES. OpenML je otvoreni standard za programsko okruženje koje omogućuje spremanje, transport, procesiranje, prikaz i sinkronizaciju digitalnih medijskih sadržaja. To uključuje 2D i 3D grafiku, audio i video procesiranje, umrežavanje i slično. OpenGL ES je otvoreni standard koji definira programsko sučelje za korištenje naprednih grafičkih mogućnosti za sve veći broj različitih mobilnih i ručnih naprava, uređaja i ugrađenih zaslona. Temelji se na najjednostavnijem podskupu OpenGL-a i omogućuje jednostavno sučelje između hardvera i softvera. Takvo standardno 3D grafičko sučelje za ugrađene sisteme neophodno je za brzo i jeftino stvaranje različitih 3D grafika i to za većinu mobilnih i ugrađenih platformi. PREDNOSTI : 1. industrijski standard 2. velika prilagodljivost na različite platforme 3. jednostavan prijenos od softverskog do hardverskog iscrtavanja 4. proširivost

Page 7: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

4

5. jednostavnost 6. dobro dokumentiran OpenGL ES je rezultat rada nezavisnog konzorcija, Kronosove grupe, te ima veliku potporu industrije. OpenGL ES je otvoreni, nezavisni, višeplatformski grafički standard. Može se primijeniti na širokom spektru uređaja, od 400 MHz PDA-a sa 64MB RAM do 50 MHz mobilnih telefona sa 1 MB RAM-a. OpenGL ES je dizajniran da prevlada te razlike tako da zahtjeva minimalnu veličinu memorije, minimalni promet instrukcija i podataka, te podržava cijele brojeve i brojeve s pomičnim zarezom. Iako OpenGL ES specifikacija definira određeni grafički protočni sustav, mogu se, umjesto poziva određenog segmenta tog sustava pozivati hardverske funkcije, koje se izvode kao softverske rutine na sistemskom procesoru, ili implementirane kao kombinacija i određenog hardvera i softverskih rutina. Programsko sučelje OpenGL ES-a se može lako nadograđivati i ono omogućuje da nove hardverske inovacije budu pristupačne preko programskog sučelja pomoći OpenGL ekstenzija. Kada te ekstenzije budu široko prihvaćene one će se moći uključiti u jezgru OpenGL ES standarda. Na taj način će se omogućiti evolucija OpenGL ES-a na kontroliran ali inovativan način. OpenGL ES, baziran na OpenGL-u, je dobro strukturiran sa intuitivnim dizajnom i logičkim naredbama. Upravo zbog toga što je baziran na OpenGL-u postoje brojne knjige i izvorni kodovi, tako da se mogu lako i jeftino naći sve potrebne informacije o OpenGL ES-u. OpenGL ES specifikacija uključuje definicije nekoliko profila. Svaki profil je podskup OpenGL 1.3 specifikacije plus neke dodatne OpenGL ES ekstenzije. Trenutno se specifikacija sastoji od samo dva profila: tzv. Common Profile i Safety Critical Profile.

Slika 1.1 OpenGL ES

The Common Profile je korisnički orijentiran i namijenjen je prije svega za zabavu na raznim ručnim napravama, PDA-ovima, igraćim konzolama i slično. On omogućuje potpuno funkcionalan 3D sa minimalnim tehničkim zahtjevima. Također predstavlja dobru igraću konzolu koja se može implementirati na mobilnim telefonima. The Safety Critical Profile je namijenjen korisničke i industrijske aplikacije gdje je naglasak na pouzdanost i sigurnost.

Page 8: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

5

1.2 Grafičko sučelje za Java 2 Micro Edition na mobilnim platformama Stručna grupa za razvoj 3D grafičkog sučelja za Java 2 Micro Edition na mobilnim platformama, sastoji se od predstavnika vodećih svjetskih kompanija na području procesora, telekomunikacija i 3D grafike. Glavni cilj ove grupe bio je razvoj učinkovitog sučelja za J2ME (Java 2 Micro Edition) platformu, konkretno CLDC/MIDP (Connected Limited Device Configuration/ Mobile Information Device Profile). Klasa CLDC uređaja ima tipično vrlo malu procesorsku snagu i memoriju, te najčešće nema nikakve sklopovske podrške za 3D grafiku i aritmetiku s pomičnim zarezom. No, sučelje podržava i one uređaje koji imaj neki oblik takve sklopovske podrške. Tako ovo grafičko sučelje može biti primijenjeno od uređaja s zaslonima u boji, pa do uređaja s sklopovskom podrškom za 3D grafiku i aritmetiku s pomičnim zarezom.

3D grafičko sučelje za Java 2 Micro Edition na mobilnim platformama predstavlja izborni paket koji se može prilagoditi postojećim J2ME profilima. Svaki profil J2ME predstavlja sučelje za specifični tip naprave. Ovaj paket namijenjen je za J2ME/CLDC. CLDC konfiguracija, kombinirana sa MIDP, čini okolinu u kojoj se izvodi Java kod (Java runtime environment) na uređajima sa ograničenim resursima kao što su mobilni telefoni, dojavljivači i osobni digitalni pomoćnici (PDA – Personal Digital Assistants). Osim na J2ME/CLDC platformama, 3D grafičko sučelje za Java 2 Micro Edition na mobilnim platformama može biti implementirano i na bilo kojoj drugoj Java platformi.

3D grafičko sučelje za Java 2 Micro Edition na mobilnim platformama trenutno je u završnoj fazi standardizacije. Bazira se na JSR 184 (Java Standard Request). Ti zahtjevi uključuju slijedeće : - Sučelje mora podržavati zadržani i neposredni način rada - Sučelje ne smije uključivati izborne dijelove, odnosno sve metode moraju biti

implementirane - Sučelje mora moći uvoziti teksture, mreže, scene i ostalo iz drugih formata - Sučelje se mora učinkovito naslanjati na OpenGL ES - Sučelje mora koristiti prirodni tip podataka s pomičnim zarezom koje podržava

Java - Sučelje se mora moći implementirati bez sklopovlja za rad s brojevima s

pomičnim zarezom - Sučelje mora biti kompatibilno s ostalim standardnim Java sučeljima, posebno

MIDP - Implementacija sučelja na stvarnom mobilnom uređaju ne smije biti veća od 150

kB

Page 9: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

6

Primjene 3D grafičkog sučelja za Java 2 Micro Edition na mobilnim platformama uključuju igre, vizualizacijske mape, korisnička sučelja, animirane poruke, screen savere i slično. Svaka od tih primjena ima različite potrebe. Neke zahtijevaju jednostavno stvaranje 3D sadržaja, neke veliku propusnost poligona, dok druge zahtijevaju slike sa visokom kvalitetom i specijalnim efektima. Upravo zbog toga sučelje podržava zadržani (retained) način rada, odnosno graf scene te neposredni (immediate) način rada. Dio sučelja niže razine, koji radi u neposrednom načinu rada, kompatibilan je sa Open GL ES standardom. Viša razina sučelja koja podržava grafa scene naslanja se na sučelje niže razine i ne zaobilazi ga prilikom iscrtavanja. To osigurava da graf scene ne uključuje one karakteristike iscrtavanja koje ne podržava sučelje niže razine. Sama implementacija sučelja niže razine može se proizvoljno mijenjati, pa čak i ubrzati sa odgovarajućim sklopovljem.

Ipak, najčešća primjena je u prikazu scene ili animacija koje su stvorene nekim 3D alatom za modeliranje. Zbog toga sučelje podržava čitanje različitih tipa podataka od tekstura, mreža poligona, animacija, scena. Time se smanjuje potrebno programiranje te se ubrzava razvoj aplikacija. Jedini zahtjev je kodiranje podataka u binarni format radi kompaktnije pohrane i transmisije.

Većina mobilnih uređaja nema sklopovsku podršku za procesiranje brojeva s pomičnim zarezom. Kod takvih uređaja sučelje implementira aritmetiku s pomičnim zarezom pomoću aritmetike cijelih brojeva. No takvo programiranje je teže i češće dolazi do pogrešaka.

Page 10: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

7

2. Ostala programska sučelja za 3D grafiku na mobilnim platformama 2.1 X-Forge X-Forge je 3D Game Engine koji omogućuje stvaranje i razvoj naprednih 3D igara i drugih 3D aplikacija na većini mobilnih platforma. Tako omogućuje stvaranje 3D korisničkih sučelja, interaktivnih likova, modeliranje proizvoda, screen savera i slično. Struktura X-Forge prikazana je na slici.

Korisničko sučelje

glavna petlja

ulaz/izlaz sudari

X – Forge višekorisničko sučelje

3D zvuk fizika

sučelje sustav čestica

graf scene ostalo

Operacijski sustav i programska apstrakcija uređaja

okvir za razvoj

aplikacija grafika zvuk mreža X –

Forge rad s datotekama

upravljanje resursima

ostalo kontrola

Mobilne Symbian

OS Microsoft

Smartphone Microsoft PocketPC

Mobile Linux

Palm OS

Slika 2.1 Struktura X-Forge

Page 11: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

8

X-Forge 3D Game Engine se sastoji od jezgre (Core) i programskog sučelja niže razine (Game Engine). Jezgra se naslanja na samo sklopovlje, a sastoji se od komponenti koje omogućuju :

• razvoj aplikacija • 2D/3D grafiku • zvuk • rad s ulaznim jedinicama • čitanje i pisanje iz datoteka • upravljanje resursima • upravljanje memorijom • rad u mreži • detekciju specifičnih karakteristika uređaja

Programsko sučelje niže razine se naslanja na jezgru i pruža sučelje prema višim slojevima. Sastoji se od modula koji osiguravaju :

• okvir za razvoj igara • globalni 3D sustav • detekciju sudara • fizikalne karakteristike modela • ulaz i izlaz podataka • višekorisničko sučelje • sustav čestica

X-Forge podržava različite operacijske sustave za mobilne uređaje, te velik broj procesora i grafičkih akceleratora. Da bi se dobile što bolje performanse, jezgra se posebno optimizira za svaku od tih platformi, dok sučelje ostaje nepromijenjeno. Trenutno su podržane slijedeće platforme :

• Symbian OS za Nokia Series 60 (Nokia N-Gage, Nokia 3650 i 7650, Siemens SX1, Samsung SGH-D700)

• Symbian OS UIQ (Sony Ericsson P800) • Palm OS od verzije 5.x (Tapwave Zodiac) • Microsoft Windows CE.NET (AlphaCell M5) • Microsoft Smartfone (Orange SPV) • Microsoft Pocket PC • Mobile Linux (Sharp Zaurus)

X-Forge je optimiziran za procesore koji se baziraju na ARM arhitekturi. Postoji i podrška za grafičke akceleratore proizvođača ATI, MediaQ i Intel. Dodatno je X-Forge dizajniran tako da radi sa OpenGL ES standardom. X-Forge pruža fleksibilan i učinkovit grafički protočni sustav. Omogućeno je dvostruko spremanje, sjenčanje, umanjivanje slika (eng. mipmapping). Teksturiranje može biti prilagođeno perspektivi ili linearno. Podržano je usmjereno i točkasto svijetlo. X-Forge ima optimizirano geometrijsko procesiranje. Osim ovih funkcija postoji podrška za ostale 2D funkcije.

Page 12: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

9

2.2 Swerve Swerve je 3D aplikacijska platforma dizajnirana za bežične uređaje kao što su mobiteli i PDA-i koju je razvila tvrtka Superscape. Postoje dva osnovna proizvoda. Swerve Author je razvojna okolina za stvaranje interaktivnih 3D aplikacija za bežične uređaje. Baziran je na 3D Studio Maxu te omogućuje razvoj interaktivnih 3D modela i kompletnih animiranih svjetova. Služi za lagano stvaranje C++ ili Java aplikacija. Swerve Client služi za generiranje i upravljanje interaktivnim 3D scenama na mobilnim uređajima, koje se generiraju iz aplikacijskog koda i korisničkih unosa. Zanimljivo je da je Superscapeov 3D Engine namijenjen integraciji u OEM okolinu na Java Virtual Machine (JVM). Swerve u tom slučaju ima oblik Java Library i Java klasa. Na slici je prikazan odnos između Swerve i ostalih komponenti sustava, te način integracije Swerve u Java okolinu. Java aplikacije, koje interpretira Java virtualni stroj, iskorištavaju tek 10 % procesorske snage uređaja. S druge strane, Swerve, koji je u biti dio Java virtualnog stroja, može poboljšati te performanse i do 9 puta.

Slika 2.2 Integracija Swerve u Java okolinu

Page 13: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

10

Što se tiče geometrijskog iscrtavanja, podržava mreže poligona, različite efekte nad 3D površinama, interpolaciju boje, panoe, različite stupnjeve vidljivosti i ostalo. Omogućava više istovremenih kamera, te određivanje područja vidljivosti. Kod teksturiranja postoji i poseban oblik tzv. plazma tekstura. To je oblik proceduralnih tekstura koje bitno smanjuju veličinu sadržaja jer se mogu izračunati nekim matematičkim algoritmom. Isto tako, Swerve omogućava animaciju svakog objekta u sceni. Iscrtavanje na današnjim prosječnim mobilnim uređajima iznosi oko 15 slika u sekundi, dok se na uređajima s jačim procesorima postiže brzina i do 40 slika u sekundi. Swerve Client dolazi u četiri različite verzije Micro, Lite, Standard i Enhanced. Enhanced verzija ima sve gore pobrojane karakteristike, dok Micro verzija nema većinu karakteristika, posebno one vezane uz materijale i osvjetljenje. Lite i Standard verzija su kombinacija ovih dviju. Kako je Swerve dio Java virtualnog stroja, jako je zavisan o platformi. Podržava slijedeće platforme:

• J2ME • Symbian OS v6.1 i v7.0 • Linux • Brew • Microsoft Smartphone 2002 • Pocket PC 2000 / 2002 / 2003 • SavaJe

Superscape-ova Swerve tehnologija se standardizira kroz dva kanala. Superscape aktivno sudjeluje u radu MPEG4 AFX (Animation Framework Extensions) foruma. Uskoro će tako biti dostupan potpuni MPEG4 codec za 3D animaciju baziranu na Swerve tehnologiji. S druge strane, Superscape sudjeluje u razvoju 3D grafičkog sučelja za J2ME koji je trenutno u svojoj završnoj fazi izrade.

Page 14: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

11

2.3 Mascot Capsule Engine Mascot Capsule Engine razvila je tvrtka HI Corporation. Ta tvrtka jedan je od pionira na području 3D grafike. Osnovana je 1989. godine sa sjedištem u Tokiju. Glavni joj je cilj bio razvoj programskih sustava koje će omogućiti prikaz 3D modela u realnom vremenu na različitim platformama.

Mascot Capsule Engine dostupan je u četiri različite verzije : • Desktop Edition • C / C ++ Edition • Web Edition • Micro3D Edition

Desktop Edition služi za razvoj aplikacija za stolna računala. C / C ++ Edition je namijenjen aplikacijama za specifične uređaje. Web Edition primjenjuje se kod različitih aplikacija na webu. Micro3D Edition prvenstveno je namijenjen aplikacijama na mobilnim platformama, te prijenosnim konzolama i ručnim računalima. Mascot Capsule Engine koristi vlastiti format podataka za prikaz 3D objekata. Zbog toga je razvijen alat za pretvorbu formata dobivenih iz drugih 3D alata za modeliranje kao što su SoftImage, Maya, 3D Studio Max, Light Wave i Animation Master. Mascot Capsule Micro3D Engine je programska podrška koja omogućuje iscrtavanje 3D grafike, implementirana je u Javu i u programskom jeziku C, a dostupna je na Java, Symbian, Smartphone, Linux, T-Engine i Brew uređajima. HI Corporation je aktivno sudjelovala u razvoju industrijskih standarda za 3D sučelja, te je tako Mascot Capsule Micro3D Engine kompatibilan sa OpenGL ES-om i zahtjevima JSR184 (Java Standard Request) za 3D sučelje za J2ME na mobilnim platformama. Postoji podrška za slijedeće procesorske jedinice (CPU):

• SH-Mobile • TI - OMAP • Motorola MX-1 • Intel Xscale • te procesorske jedinice bazirane na ARM9, ARM10 i ARM11 jezgrama

Osim toga, Mascot Capsule Micro3D Engine kompatibilan je i sa posebnim sklopovskim 3D akceleratorima za mobilne uređaje različitih proizvođača kao što su:

• Mitsubishi Electronic Z3D • Fuetrek FGP • Sanshin Electric GSHARK • Imagination Technologies PowerVR • ATI 2300 serije

Page 15: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

12

Mascot Capsule Micro3D Engine osim osnovnih funkcija iscrtavanja, kao što su teksturiranje i sjenčanje, omogućuje i neke dodatne efekte poput magle i višestrukog osvjetljenja. Može raditi i s 32 bitnim cijelim brojevima na brzini procesora od 150 MHz. Implementacija na mobilnom uređaju zauzima od 75 do 180 KB memorijskog prostora.

Page 16: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

13

2.4 DieselEngine DieselEngine proizvod je tvrtke Inmarsoftware. Služi za razvoj 3D aplikacija na stolnim računalima i mobilnim uređajima. Prvenstveno je namijenjen za stvaranje 3D igara. Uz kolekciju C++ klasa sastoji se i od različitih uslužnih programa za jednostavno stvaranje aplikacija i za konverziju iz različitih formata, te pomoćnih programa i plug-inova za obradu slike, zvuka, 3D objekata, animacije i sličnog. Programsko sučelje mu je slično Microsoftovom DirectX-u, ali postoje određene razlike. Podržane platforme su:

• Pocket PC, na ARM, MIPS ili SH3 procesorima • Handheld PC Pro na ARM, MIPS, SH3 ili SH4 procesorima • Desktop PC sa Microsoft DirectX ver. 3, 7, ili 8 • Symbian EPOC za Nokia Communicator 9200 • Symbian EPOC za Nokia 7650 • Microsoft Smartphone 2002

Može se dobiti prilagođena verzija Diesel Engina za bilo koju drugu platformu. Diesel Engine se sastoji od slijedećih komponenti:

• DieselCommon • DieselGraphics • Diesel3D • DieselInput • DieselSound

U nastavku je detaljnije opisana svaka od tih komponenti. 2.4.1 DieselCommon DieselCommon je kolekcija klasa koju koriste sve komponente Diesel Engina. On implementira funkcije koje se najčešće koriste, te su one nezavisne o uređaju na kojem radi aplikacija. Omogućuje čitanje i pisanje u datoteke, zatim stvaranje i sinkronizaciju niti, te korištenje dinamičkih polja. Posjeduje i različite klase koje implementiraju matematičke objekte poput vektora i matrica. Uz to, sastoji se i od sustava za praćenje memorije prilikom ispitivanja rada programa. 2.4.2 DieselGraphics DieselGraphics je osnovna komponenta Diesel Engina, a sastoji se od klasa koje omogućuju rad s grafikom. Najvažnija je IDieselApplication klasa koja se koristi kao glavni aplikacijski objekt.

Page 17: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

14

Površina je predstavljena kao pravokutni blok memorije koju posjeduje objekt klase CDieselSurface. Postoje različite funkcije koje omogućuju kopiranje jedne površinu na drugu uz različite efekte poput prozirnosti, rotacije, sjenčanja i sličnog. Podržani su i različiti formati slika poput jpeg, gif i bitmap koji se jednostavno preslikavaju na DieselGraphics površinu. CDieselParticleEmitter klasa predstavlja dvodimenzionalni sustav čestica. Moguće su različite manipulacije nad takvim sustavom poput dodavanja gravitacije, vjetra, sudara i sličnog. DieselGraphics uključuje i klasu CDieselAVIWriter. Ta klasa omogućuje spremanje grafičkog izlaza aplikacije direktno u video datoteku. To znači da se bilo koja Diesel Engine aplikacija može snimiti u AVI datoteku. To se odnosi samo na aplikacije koje se razvijaju za stolno računalo. Uz opisane klase, DieselGraphics još uključuje klase koje omogućuju korištenje ostalih 2D grafičkih funkcija. 2.4.3 Diesel3D Diesel3D je kolekcija C++ klasa koja se naslanja na DieselGraphics. Ona koristi funkcije DieselGraphics komponente za stvaranje trodimenzionalne grafike koja se iscrtava na objektu klase CDieselSurface. Omogućena su dva paralelna protočna sustava za transformacije i osvjetljenje. Protočni sustav, koji podržava aritmetiku s pomičnim zarezom, koristi se za maksimalnu preciznost, dok se protočni sustav s fiksnom točkom koristi za bolje performanse. Postoje različiti načini iscrtavanja, te su omogućeni specijalni efekti poput eksplozije, vatre, dima i oblaka. Diesel3D podržava 8 istovremenih izvora svjetlosti i vrlo je učinkovit na uređajima s ograničenom memorijom. Među važnijim klasama Diesel3D komponente je klasa CDiesel3DDevice. Ona se koristi kod svih 3D grafičkih transformacija, računanja osvjetljenja, te kod iscrtavanja. Aplikacija ne smije imati više od jednog objekta te klase. CDiesel3DScene klasa predstavlja spremnik objekata koji sadrži spremnike vrhova, spremnike indeksa, materijale, svijetla, teksture i 3D objekte. Objekt ove klase posjeduje mehanizme pomoću kojih lako dodaje nove resurse i ti resursi se mogu identificirati po svojem imenu. 3D objekti mogu tvoriti hijerarhiju koja se bazira na intuitivnom roditelj – dijete sustavu. CDiesel3DScene još posjeduje specijalni 3D objekt koji se naziva korijenski objekt. Svaki objekt koji se doda kao dijete korijenskom objektu, automatski se može iscrtati. Svaki objekt se može animirati korištenjem okvira pozicije, rotacije, promjene veličine, te korištenjem okvira spremnika vrhova. Animacija je ostvarena pomoću klase CDieselAnimator. Postoji podrška za pretvorbu iz različitih formata poput 3D Studio MAX. 3D sustav čestica se može dodati u hijerarhiju objekata i pri tome se tretira kao zasebni 3D objekt. CDiesel3DCamera klasa predstavlja kameru u 3D prostoru. Postoji dobro razrađeni sustav za njezinu kontrolu jer se kamera tretira kao bilo koji drugi 3D objekt te se može i animirati.

Page 18: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

15

2.4.4 DieselInput DieselInput je komponenta DieselEngina koja pojednostavljuje korištenje ulaznih jedinica. Ona omogućuje da se senzori i tipke ulaznih jedinica mapiraju te se tako isti izvorni kod može upotrijebiti na različitim podržanim platformama. Sustavom vremenskih oznaka se može dobiti vremensko trajanje pritiska na neku tipku ili senzor, a sustavom za kašnjenje tipki se osigurava da je neka tipka pritisnuta samo jedanput u danoj frekvenciji. Postoji podrška za tipkovnicu, miš, olovku (eng. stylus pen), igrače palice i slično. 2.4.5 DieselSound DieselSound čini skup komponenti za rad s zvukom. Moguće je miješanje do 256 različitih zvukova istovremeno te mijenjanje karakteristika zvuka u realnom vremenu. DieselSound pruža podršku za nekompresirane i Intel IMAADPCM kompresirane audio podatke.

Page 19: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

16

3. Sklopovska podrška 3D grafici na mobilnim platformama 3.1 ARM procesori s 3D grafičkim akceleratorom ARM je vodeći proizvođač 32 bitnih RISC procesora sa približno 75% udjela svjetskog tržišta. Zbog visokih performansa i niske potrošnje energije ovi procesori su idealni za digitalne mobilne telefone. ARM 3D grafički akcelerator je optimiziran za integraciju u priručne ARM jezgre u ARM9ETM i ARM10ETM familiji procesora te omogućuje korištenje 3D grafike na ugrađenim i mobilnim telefonima. ARM-ova 3D grafička akceleracijska tehnologija se bazira na PowerVR-om MBX grafičkom procesoru, a razvijena je u suradnji sa Imagination Tehnologies. Kombinacijom PowerVR MBX sa ARM-ovim procesorima će se omogućiti migracija modernih 3D i video grafičkih sadržaja na prijenosne platforme uključujući mobilne uređaje, PDA (Personal Digital Asistant), igrače konzole i sustave za zabavu. Na slici je prikazana ARM MBX grafička arhitektura.

Slika 3.1 ARM MBX grafička arhitektura

Osnovna razlika između te arhitekture i one na kojoj se baziraju osobna računala je u konfiguraciji memorije. ARM’s ugrađeni sustav je razvijen oko UMA (Unified

Page 20: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

17

Memory Architecture), koji omogućuje dijeljenje sistemske memorije između procesora i grafičkog akceleratora, dok kod osobnih računala grafički akcelerator ima svoju vlastitu memoriju. Dijeljenje sistemske memorije donosi određene prednosti. Naime, odvojena video memorija zahtjeva dodatni silicij, te, ako dolazi odvojeno, zahtjeva dodatni broj pinova, što može biti ograničavajući faktor kod dizajniranja takvih sustava. ARM je za grafičke UMA bazirane sisteme razvio posebnu GX seriju memorijskih kontrolera. Obični memorijski kontroleri najčešće rade u tzv. ‘burst of four’ modu gdje se kod jednog pristupa adresi obave četiri pristupa podacima. Takav pristup je dobar kad procesor pristupa memoriji, jer se najčešće radi o sekvencijalnim podacima. Međutim, grafički akcelerator ima drukčiji pristup podacima. Veličine segmenta (eng. burst) kojima pristupa nisu fiksne, mogu biti manji, te nisu nužno sekvencijalni. Zbog toga GX memorijski kontroleri koriste fleksibilniji ‘burst of one’ mod, koji im omogućuje da sami generiraju svoju burst sekvencu. 3.1.1 ARM MBX 3D Akceleracija ARM je u suradnji sa Imagination Tehnologies razvio MBX 2D i 3D akceleratorske jezgre koje omogućuju korištenje kvalitetne 3D grafike na mobilnim uređajima. MBX jezgre koriste jedinstvenu screen-tiling tehnologiju zbog smanjivanja zahtjeva za veličinom memorije i potrošnjom energije na onu razinu koja je prikladna mobilnim uređajima. MBX grafički akcelerator uzima drukčiji algoritamski pristup procesiranju 3D grafike koji eliminira redundantno procesiranje i memorijska uska grla (eng. bottlenecs). Isto tako, minimizira se pristup memorijskim jedinicama izvan samog čipa, čime se postižu bolje performanse i manja potrošnja energije. Danas se jedinstvena tehnika 'tilt-based defferred' teksturiranja, koju omogućuje ova sistemska arhitektura, koristi širom svijeta. Karakteristike: - 2D i 3D grafičko ubrzanje i video akceleracija - prekrivanje ekrana i 'deferred' teksturiranje – omogućuje iscrtavanje samo

vidljivih piksela - unutarnji Z-spremnik - interpolacija boje - bilinearno, trilinearno i anisotropno filtriranje tekstura - ambijentno, difuzno i spekularno osvjetljenje - dvoslojno teksturiranje - antialiasing cijele scene, 2x2, 2x1 ili 1x2 - konverzija YUV u RGB - sposobnost mapiranje okoline - različiti formati tekstura i kompresija tekstura - prozirnost - 32 bitno interno iscrtavanje sa 16 bitnim spremnikom okvira

Page 21: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

18

- iscrtavanje do tekstura i prozora – omogućuje višestruke prozore - opcionalni VGP (Vertex Geometry Processor) - AMBA AHB sučelje - ARM višeportno sučelje za memorijski kontroler Na slici prikazana je funkcionalna shema MBX grafičkog akceleratora.

Slika 3.2 Shema MBX grafičkog akceleratora

Postoje dvije verzije MBX grafičkog akceleratora. Svaka verzija pruža različite karakteristike za različite aplikacije i rezolucije ekrana. Prva je MBX R-S verzija koja je namijenjena aplikacijama na mobilnima platformama. Verzija MBX HR-S je namijenjena ručnim napravama visokih performansi koje su namijenjene prikazu višemedijskih sadržaja. Svaka verzija se može pojačati sa Vertex Geometry Processor (VGP) za ubrzanje računanja transformacija i osvjetljenja. VGP se bazira na Microsoftovoj DirectX8.1 VertexShader specifikaciji. Detaljnija usporedba karakteristika prikazana je u tablici.

Page 22: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

19

Tablica 3.1 Usporedba HR-S i R-S verzije MBX grafičkog akceleratora

MBX HR-S

MBX R-S

- 660K ulaz (870 sa VGP geometrijskim procesorom)

- 325K ulaz (470 sa VGP geometrijskim procesorom)

- 80 MHz operacija u 0.18 µm procesa - 80 MHz operacija u 0.18 µm procesa - više od 120 MHz operacija u 0.13 µm procesa - više od 120 MHz operacija u 0.13 µm procesa - brzina punjenja do 500 milijuna piksela u sekundi

- brzina punjenja do 250 milijuna piksela u sekundi

- brzina iscrtavanja do 2.5 milijuna trokuta u sekundi

- brzina iscrtavanja do 1.5 milijuna trokuta u sekundi

- podržava rezolucije ekrana od QVGA (320x240) do VGA (640x480)

- podržava rezolucije ekrana od QCIF (176x144) do QVGA (320x240)

- < 1mW/MHz za 0.13 µm procese i < 2mW za 0.18 µm procese

- < 0.7mW/MHz za 0.13 µm procese i < 21.5mW za 0.18 µm procese

3.1.2 Performanse Na slici su uspoređene performanse ARM procesora sa MBX R-S i MBX HR-S grafičkim akceleratorima s nekim poznatim igraćim konzolama. Kriterij uspoređivanja je broj poligona, odnosno trokuta koje njihov protočni sustav može obraditi u jedinici vremena.

Slika 3.3 Usporedba performansa ARM procesora s poznatim igraćim konzolama

Vidi se da je ARM-ov procesor sa MBX R-S grafičkim akceleratorom brži od Nintendo 64 i Playstation konzole, dok se ARM9 i ARM10 procesori sa MBX HR-S grafičkim akceleratorom mogu mjeriti sa Sega Dreamcast i Playstation 2.

Page 23: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

20

4. Primjer razvijanja 3D aplikacija na mobilnim platformama korištenjem DieselEngina DieselEngine je programska podrška koja omogućuje jednostavno stvaranje 3D aplikacija na mobilnim platformama. U samom DieselEngine SDK (Software Development Kit) nalazi se nekoliko korisnih alata, poput Diesel Application Wizarda , koje bitno ubrzavaju razvoj aplikacija. Kod stvaranja DieselEngine aplikacija za Symbian OS potrebna je dodatna programsku podršku za razvoj ovisno na kojoj platformi se radi. Tako se može koristiti jedan od slijedećih SDK paketa :

• Nokia 9200 SDK Communicator series SDK Version 1.2 • Nokia Series 60 SDK for Symbian OS v6.1 • Symbian UIQ v7.0 SDK for Sony-Ericsson P800

Paketi su besplatni i dostupni na webu. Zajedno s njima dolaze različiti korisnički programi koji olakšavaju razvoj C++ i Java aplikacija za spomenute mobilne platforme. Najvažniji je emulator koji omogućuje jednostavno testiranje rada programa na stolnom računalu bez potrebe za njegovim instaliranjem na konkretnom uređaju. Osim spomenutih paketa, potreban nam je i neki od alata za pisanje C++ programa. Ovdje dolazi do problema. Naime, DieselEngine, te prije spomenuti Diesel Application Wizard prilagođeni su za rad s Microsoft Visual C++ 6.0 i eMbedded Visual C++. S druge strane, Symbian OS v6.x SDK je za C++ razvoj potreban Microsoft Visual C++ 6.0, dok je za Symbian UIQ v7.0 SDK potreban Metrowerks CodeWarrior. Zbog toga se Diesel Application Wizard neće moći koristiti kod razvoja aplikacija za Symbian UIQ. Isto tako DieselEngine nema library datoteke za stvaranje aplikacija na emulatoru Symbian UIQ v7.0, već samo za konkretni uređaj. To znači da se ona mora prenijeti na sam uređaj da bi se ispitao njezin rad što zahtjeva dosta dodatnog posla kod razvoja aplikacije. U nastavku je prikazan način generiranja 3D sadržaja najprije za emulator na Nokia Series 60 SDK. Time će se prvi rezultati dobiti vrlo brzo i jednostavno. Nakon toga objašnjeno je kako se postojeći projekt prenosi na Sony Ericsson P800 korištenjem CodeWarrior alata. Naime, DieselEngine odvaja aplikaciju od platforme te će se ista aplikacija ponašati jednako na svim podržanim platformama, bez potrebe za mijenjanjem izvornog koda aplikacije.

Page 24: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

21

4.1 Generiranje 3D sadržaja korištenjem DieselEngina i Nokia Series 60 SDK Za generiranje 3D sadržaja korištenjem DieselEngina i Nokia Series 60 SDK potrebni su nam slijedeći programski alati :

• DieselEngine SDK verzija 1.31 ili viša • Nokia Series 60 SDK za Symbian OS v6.1 • Microsoft Visual C++ 6.0

Nakon instaliranja svih ovih alata potrebno je provjeriti da li su svi parametri ispravno postavljeni. Moramo provjeriti da li je Microsoft Visual C++ ispravno konfiguriran za rad s DieselEngine. Pretpostavka je da je DieselEngine SDK instaliran u direktorij 'C:\Diesel'.

• U Visual C++ otvorimo izbornik Tools->Options • Odaberemo Directories • Provjerimo da je za platform odabrana 'Win32' • Odaberemo 'Include files' na 'Show directories for' izborniku • Na listi 'Directories' dvaput kliknemo na najnižu praznu selekciju • U okvir za editiranje upišemo 'C:\Diesel\Include' i pritisnemo enter • Nakon toga odaberemo 'Library files' sa 'Show directories for' izbornika • Na listi 'Directories' dvaput kliknemo na najnižu praznu selekciju • U okvir za editiranje upišemo 'C:\Diesel\Lib' i pritisnemo enter • Na kraju pritisnemo 'OK'

Time smo u Visual C++ uključili zaglavlja i library datoteke koje su nam potrebne za ispravan rad DieselEngina.

Aplikaciju ćemo razviti korištenjem Diesel Application Wizarda, ali je i njega potrebno najprije ispravno instalirati. To se može jednostavno učiniti na slijedeći način :

• Otvorimo Windows Explorer • Lociramo datoteku Diesel Application Wizard.awx koja se nalazi u direktoriju

'C:\Diesel' • Tu datoteku kopiramo u direktorij 'C:\Program Files\Microsoft Visual

Studio\Common\MSDev98\Template' Sada se Diesel Application Wizard može naći u izborniku 'File | New | Projects'

U nastavku je objašnjeno stvaranje nove aplikacije pomoću Diesel Application Wizarda.

Page 25: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

22

Na bilo kojem koraku moguće je pritisnuti tipku 'Finish' i stvoriti projekt s najčešćim korištenim postavkama. Na kraju prikazuje se sažetak projekta.

Slika 4.1

Najprije postavimo ime projekta i odaberemo odredišni direktorij, te iz liste odaberemo 'Diesel Application Wizard'.

Slika 4.2

Sada odaberemo ime glavne aplikacijske klase, te postavljamo ime aplikacije koja će se pojavljivati u task baru ili title baru operacijskog sustava.

Diesel Application Wizard može kreirati osnovne okvire za stvaranje Symbian OS aplikacija. Stvaraju se sve potrebne datoteke .mmp, .rss i .hrh. U njima se nalaze informacije o izvornim datotekama i resursima koje treba koristiti te popis identifikatora resursa.

Svaka Symbian OS aplikacija mora imati jedinstveni identifikacijski broj (UID). Diesel Application Wizard može generirati slučajan UID pri čemu se ne garantira postojanje istog kod neke druge aplikacije.

Odaberemo 'Create Symbian OS project files' te pritisnemo na gumb 'Random'.

Page 26: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

23

Slika 4.3

U slijedećem koraku iz liste javnih virtualnih funkcija koje posjeduje klasa IDieselAplication odabiremo one koje želimo preopteretiti. Za našu aplikaciju će biti dovoljno da odaberemo 'void OnMouseButton()'. Diesel Application Wizard uvijek generira funkcije IDieselApplication::OnInitDone, IDieselApplication::OnExit i IDieselApplication::OnFlip. Te funkcije opisuju ponašanje aplikacije.

Slika 4.4

Page 27: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

24

Zatim odaberemo Create 'Spinning Cube' čime će Diesel Application Wizard sam generirati potrebni izvorni kod za aplikaciju koja će prikazivati rotirajuću kocku. Nakon toga pritisnemo na tipku 'Finish'. Na kraju je potrebno još napisati implementaciju za preopterećenu funkciju IDieselApplication:: OnMouseButton(). Njoj samo dodamo redak :

Shutdown();

Na taj način smo odredili da se prilikom pritiska miša na polje iscrtavanja izlazi iz aplikacije. Time su stvorene sve datoteke potrebne za kreiranje aplikacije koja radi na Symbian OS platformi. Sada se može izgraditi aplikacija koristeći komandnu liniju. Prije nego se krene dalje potrebno je provjeriti da li postoji datoteka vcvars32.bat. To je datoteka koja nam omogućuje razvoj iz komandne linije jer postavlja sve varijable okoline potrebne Visual C++ alatu. Najčešće se nalazi u direktoriju 'C:\Program Files\Microsoft Visual Studio\VC98\Bin ' Sada u komandnoj liniji pokrenemo tu datoteku. Premjestimo se u mapu gdje se nalazi izvorni kod i datoteka Kocka.mmp te upišemo slijedeće:

bldmake bldfiles abld makefile vc6

Na taj način stvoren je Visual C++ projekt koji se nalazi u direktoriju 'C:\Symbian\6.1\Series60\Epoc32\BUILD\KOCKA\KOCKA\KOCKA\WINS' Izvršna datoteka za emulator se može sada kreirati na dva načina. Iz komandne linije ako upišemo

abld makefile vc6 Isto možemo učiniti iz pomoću Visual C++ alata. Otvorimo prije stvoreni projekt te odaberemo 'Build | Build'. Izvršni kod aplikacije nalazi se u direktoriju 'C:\Symbian\6.1\Series60\Epoc32\Release\wins\UDEB\Z\SYSTEM\apps\KOCKA' Ta aplikacija je sada dostupna preko emulatora koji se pokreće iz komandne linije upisivanjem naredbe epoc, ili pomoću Visual C++ alata. Kod projekta odaberemo 'Build | Execute'. Tada odaberemo izvršnu datoteku epoc.exe koja se nalazi u direktoriju 'C:\Symbian\6.1\Series60\Epoc32\Release\wins\UDEB\'

Page 28: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

25

Nakon toga se automatski pokreće emulator gdje se može ispitati rad aplikacije. Rezultat je prikazan na slici.

Slika 4.5 Emulator za Nokia Series 60 SDK

Page 29: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

26

4.2 Generiranje 3D sadržaja za Sony Ericsson P800 Sony Ericsson P800 podržava razvoj iz tri programska jezika: C++, pJava i J2ME CLDC/MIDP. Svaki od tih jezika ima svoje nedostatke i prednosti, no aplikacije pisane u C++ imaju najveći pristup funkcijama uređaja. Za generiranje 3D sadržaja korištenjem DieselEngina za P800 potrebni su nam slijedeći programski alati :

• DieselEngine SDK verzija 1.30 ili viša • Symbian UIQ v7.0 SDK • Metrowerks CodeWarrior

Koristi će se projekt opisan u prijašnjem poglavlju. On neka se nalazi u direktoriju 'C:\Kocka\Kocka'. Pokrenemo CodeWarrior IDE alat. Odaberemo 'File | Import Project from .mmp File'. Označimo 'UIQ UIQ_70' i kliknemo 'Next'. Sada u polje 'MMP File Selection:' upišemo 'C:\Kocka\Kocka\Kocka.mmp', a drugo polje ostavimo prazno. Nakon toga treba provjeriti da je u 'Project | Set Default Project' odabran projekt Kocka, a u 'Project | Set Default Target' treba biti odabrana KOCKA ARMI UREL. Sada u projekt treba uključiti datoteke zaglavlja DieselEngina te njegove library datoteke za Symbian UIQ 7.0. To se može uraditi na slijedeći način:

• Odaberemo 'Edit | KOCKA ARMI UREL Settings', te u Target Settings panelu odaberemo Access Paths.

• U User Paths potrebno je dodati dva direktorija : 'C:\Diesel\Include' i 'C:\Diesel\Lib\EPOCR7\ARMI'

• Sada se može stvoriti izvršna datoteka za P800 odabirom 'Project | Make' ili pritiskom na tipku F7.

Nakon što je stvorena izvršna datoteka potrebno ju je prenijeti na konkretni uređaj. To se može učiniti tako da se stvori .sis datoteka. Sis datoteka je u biti instalacijska datoteka koja sama instalira aplikaciju na mobilni uređaj. No, da bi se ona stvorila potrebna nam je .pkg datoteka. To je obična tekstualna datoteka sa slijedećim sadržajem : #{"Kocka"},(0x101F616A),7,0,0,TYPE=SA (0x101F617B), 2, 0, 0, {"UIQ20ProductID"} "C:\Symbian\UIQ_70\epoc32\release\armi\urel\KOCKA.APP"-"!:\system\apps\kocka\Kocka.app" "C:\Symbian\UIQ_70\epoc32\data\z\system\apps\Kocka\Kocka.rSC"-"!:\system\apps\kocka\kocka.rsc" Snimimo datoteku pod nazivom kocka.pkg. Sada tu datoteku dodamo projektu. Kliknemo Project | Add Files. Nakon toga ponovo sagradimo projekt sa Project | Make. Na taj način nam se u direktoriju gdje se nam nalazi izvorni projekt stvorila datoteka Aplication.sis koja se vrlo jednostavno instalira na konkretni uređaj.

Page 30: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

27

Zaključak Rješenja za 3D grafiku na bežičnim uređajima koja ugrađuju klijentsku tehnologiju, razvojne alate i 3D aplikacije, postoje već danas na tržištu. Prva generacija 3D sustava i interaktivnih 3D aplikacija dostupna je na otvorenim platformama poput Symbiana i Smartphonea. No da bi 3D tržište postalo masovno potrebna je suradnja svih čimbenika u industriji. Operatori, proizvođači opreme, programeri i ostali moraju imati ulogu u osiguravanju dostupnosti takvih aplikacija za krajnjeg korisnika. Razvoj 3D sadržaja moguć je samo uz razvoj 3D tehnologija za prijenosne uređaje.

Page 31: Seminarski Rad-3D Grafika Na Mobilnim PlatformamaMosmondor-2003!09!22

28

Literatura: knjiga: [1] T. Akenine-Möller, E. Haines, Real-Time Rendering, A K Peters, Natick, Massachusetts, 2nd ed., 2002. World Wide Web [2] OpenGL ES: http://www.khronos.org/opengles/index.html [3] JSR 184: http://www.jcp.org/en/jsr/detail?id=184 [4] X-Forge: http://www.fathammer.com/x-forge/ [5] Swerve: http://www.superscape.com/products/index.asp [6] Mascot Capsule Engine: http://www.mascotcapsule.com/ [7] DieselEngine: http://www.inmarsoftware.com [8] ARM MBX grafičke akceleratorske jezgre : http://www.arm.com/armtech.nsf/html/MBX3D?OpenDocument [9] Symbian OS SDK: http://www.symbian.com/developer/SDKs.html [10] Sony Ericsson P800: http://www.sonyericsson.com/P800/