štvrtok 27. mája 2010

Kapitola 3: Rozdelenie do skupín a porovnanie technológií

3.1 Rozdelenie podľa použitých programovacích jazykov

Technológie zobrazujúce 3D scénu na internete je možné rozdeľovať z rôznych hľadísk. V tejto bakalárskej práci sme rozdelili technológie podľa použitých programovacích jazykov do niekoľkých hlavných skupín:

1. JAVA

2. Deklaratívny programovací jazyk VRML

3. XML

4. ActionScript

5. JavaScript

6. Uzavretý formát

Najprv ich porovnáme z hľadiska všeobecnej použiteľnosti. Vyberáme si technológie, ktoré sú si najbližšie z programátorského hľadiska, pretože tieto technológie zdieľajú podobnú filozofiu použiteľnosti. V ďalšom ich budeme porovnávať podľa hľadísk uvedených v tabuľkách 1 až 7.

3.1.1 JAVA versus VRML

Jednou z mnohých technológií postavených na jazyku JAVA je Java3D. Je akousi nadmnožinou technológie VRML. Oproti VRML prináša väčšiu kontrolu nad vykresľovaním scény a nad vstupnými zariadeniami. Výhodou je programovanie v Jave. Aj z tohto dôvodu podporuje importovanie VRML súborov. Java3D je vhodný najmä pre programátorov so znalosťou jazyka JAVA, alebo jazyka s podobnou syntaxou, ako je napíklad PHP, C++, C# a podobne.

VRML je deklaratívny programovancí jazyk, ktorý je jednoduchší na naučenie a aj použitie ako práca s Java3D. Mnoho grafický programov umožňuje priamo vytvárať, alebo exportovať do formátu VRML. Je to technológia určená skôr pre umelcov alebo dizajnérov, ako pre programátorov. Samozrejme pre zložitejšie úkony je dobré vedieť sa orientovať aj v syntaxi tohto deklaratívneho jazyka.

3.1.2 VRML versus XML

V prvom rade musíme podotknúť, že vývojári technológie X3D si potrpeli na spätnú kompatiblitu z X3D do VRML. Podpora klasického kódovania VRML je možná prostredníctvom súboru typu X3DV, ktorý dokáže zobrazovať väčšinu 3D scén z VRML. Nevýhodou pri takejto konverzii je, že nemôžeme použiť skripty. Naopak jej výhodou je potreba vykonať len niekoľko úprav.

XML sa veľmi rýchlo rozšíril medzi mnohé technológie. Je využívaný vďaka možnosti pohodlne ho integrovať do aplikácií. V tomto tkvie značná výhoda X3D oproti VRML.

Nevýhodou VRML je, že v ňom nie sme schopný vytvárať také 3D scény, aby boli rovnako prehrateľné na všetkých operačných systémoch, či prehliadačoch. Vo väčšine prípadov to síce možné je, no je to príliš zložité. Vývojári X3D sa snažia poučiť práve z tohto nedostatku tým, že poskytujú lepšiu špecifikáciu a snažia sa tým vyhnúť nedostatkom v kompatibilite medzi prehliadačmi. V X3D bol použitý Scene Authoring Interface (SAI), čo je systém, ktorý nám umožňuje používanie skriptov v 3D scénach konzistentne pre všetky druhy prehliadačov. Vo VRML toto nie je možné, preto aj pri konverzii z VRML na X3D nie je možné konvertovať scénu spolu so skriptami. SAI to rieši takým spôsobom, že vytvára abstraktné prostredie, na ktoré môžeme namapovať skripty.

V X3D je oproti VRML viac funkcií priamo integrovaných do architektúry technológie. Celá architektúra je budovaná spôsobom, aby bola ľahko vylepšovateľná.

Vykresľovanie 3D scény v X3D je rýchlejšie o 300% až 500% oproti VRML.

Momentálne vývojári prehliadačov avízujú integrovanú podporu obocho formátov priamo v prehliadačoch, čo bude výhodou pre obe technológie, keďže už nebude potrebné doinštalovávať zásuvné moduly do prehliadačov.

3.1.3. ActionScript versus JavaScript

ActionScript a JavaScript zdieľajú spoločné syntaktické jadro ECMAScript. ActionScript sa snaží prebrať výhody jazyka JavaScript a je považovaný za najsilnejší programovací jazyk pred AJAXom. Ako prostriedom interakcie s používateľmi využíva technológiu Flash.

ActionScript ponúka jednoduchú správu multimediálnych súborov ako zvukových formátov alebo videoformátov a ich následné integrovanie. Pokiaľ je cieľom programátora vysoká miera interakcie, tak ActionScript je jednoznačne správna voľba. Je to pomerne zložitý programovací jazyk, no používa prehľadnú a ľahko zrozumiteľnú syntax.

Výhodou JavaScriptu je možnosť programovať v ňom bez akéhokoľvek dodatočného inštalovania aplikácií, či vývojových prostredí. Je jednoduchý a prehľadný. Vzhľadom na jeho rozšírenie je vhodný pre programovanie aplikácií zobrazujúcich 3D scénu.

Technológie zobrazujúce 3D scénu, ktoré využívajú prednosti jazyka JavaScript, ho využívajú hlavne vďaka jeho jednoduchosti. Je to funkcionálny a dynamický jazyk. Nie je v ňom potrebné striktne dodržovať syntax.

Oba programovacie jazyky sú moderné a dynamicky sa vyvíjajúce a postupom času sa medzi nimi zmazávajú prílišné rozdiely.

3.1.4. JAVA versus Javascript

JAVA a JavaScript sú si syntaxou veľmi podobné jazyky. JavaScript je momentálne veľmi využívaný a stále vývojovo napredujúci jazyk, aj preto, že je často využívaný vo web technológiách. Oproti JAVE nevyžaduje doinštalovávanie zásuvných modulov do prehliadača. Napriek tomu JAVA pokrýva oveľa širšie spektrum platforiem, kde je spustiteľná. Dá sa použiť naozaj všade a je málo miest, kam sa nedostala a tam nastupuje na rad JavaScript, ktorý prenáša jej vlastnosti na klienta.

Momentálne sa JAVA sústreďuje skôr na samostatné aplikácie a jej napredovanie na webe nie je také silné. JavaScript sa na webe presadzuje odzačiatku a jeho postavenie sa posilňuje zo dňa na deň.

3.2. Pokročilé rozdelenie technológií a ich porovnanie

V tejto podkapitole sa budeme venovať rozdeleniu popisovaných technológií do piatich skupín. S rozdelím sme s stretli v tabuľkách 1. až 7 a ostaneme pri tomto rozdelení. Rozdelenie popisovaných technológií je nasledovné:

1. Poročilé funkcie

2. Podporované formáty

3. Podporované platformy

4. Miera interakcie

5. Dostupnosť

3.2.1 Porovnanie podľa pokročilých funkcií

Text text.

3.2.2 Porovnanie podľa podporovaných formátov

Niektoré technológie využívajú len vlastný formát, pričom možeme využiť konverziu z iného formátu. Konverzia je väčšinou neúplná, najmä pri formátoch, ktoré nie su otvorené.

Technológia

Vlastný formát

Podporované 3D formáty

Java3D API 1.5.2

java, jar, class

3ds, cob, dem, dxf, iob, lws, nff, obj, pdb, play, sld, vrt, vtk, wrl

VRML 2.0

wrl, wrz

umožňuje export do svojho formátu

X3D 3.2

x3d, x3dv, x3db, x3dz, x3dbz, x3dvz

umožňuje export do svojho formátu

Adobe Flash 11.0.0.485

swf, flv, fla, as, xml

obj, mqo, md2, 3ds, kmz, ase, lwo, acd3, swf, awd

Adobe Shockwave 11.5.6.606

dcr

3ds, ai, ase, atr, blk, dae, dxf, obj, vw, wrl, w3d

HTML5 Canvas element

js

vo vývoji

Google O3D 0.1.40.1

js

dae, wrl, x3d

WebGL

js

3ds, obj, x, lwo, b3d, csm, dae, dfm, osh, irrmesh, ms3d, my3d, mesh, lmts, bsp, md2, stl, wrl, x3d

Tabuľka č.8, Zoznam podporovaných 3D formátov

Z uvedených technológií používa len vlastný formát: VRML 2.0 a X3D 3.2. Tieto technológie umožňujú konverziu do vlasntého formátu, no už medzi sebou je konverzia neúplná, takže konverzia z iného formátu môže byť ešte problematickejšia. Pri konverzii z X3D do VRML alebo opačne sa to týka najmä skriptov, ktoré nemôžu byť momentálne prenesené.

Možnosť priameho importu 3D formátu umožňujú tieto technológie: Java3D API 1.5.2, Adobe Flash 11.0.0.485, Adobe Shockwave 11.5.6.606, Google O3D 0.1.40.1 a WebGL. Pričom technológia Shockwave používa na import výlučne prostredie Adobe Director a je od neho závislá. Ostatné z vymenovaných technológií umožňujú import samotným programátorom. Flash a WebGL používajú aj vlastný editor, pričom editor CopperLicht, využívaný WebGL je zo spomenutých najkomplexnejší a umožňuje najvyššiu podporu moderných 3D formátov.

Graf č.1, Počet podporovaných 3D formátov technológiami

Z uvedeného grafu vyplýva poradie: WebGL, Java3D a Adobe Shockwave, z toho WebGL a Shockwave používajú vlastný editor umožňujúci import.

3.2.3 Porovnanie podľa podporovaných platforiem

V práci sa sústreďujeme na technológie spustiteľné v najrozšírenejších internetových prehliadačoch. Neustále napredujúca doba tlačí tieto technológie aj na iné platformy ako su bežné počítače v domácnostiach. Sú nimi napríklad mobilné zariadenia. Tak isto rozlišujeme technológie spustiteľné vrámci rôznych operačných systémoch, či architektúrach operačných systémov.

Technológia

Podporované platformy

Prehliadače

Java3D API 1.5.2

Linux x86 (x86-64)

Mac OS X x86

Windows x86 (x86-64)

Solaris x86 (x86-64)

Mobilné zariadenia

IE8, IE7, IE6

Firefox

Chrome

Safari

Opera

VRML 2.0

Linux x86 (x86-64)

Mac OS X x86 (x86-64)

Windows x86 (x86-64)

Solaris x86 (x86-64)

Mobilné zariadenia

IE8, IE7, IE6

Firefox

Chrome

Safari

Opera

X3D 3.2

Linux x86 (x86-64)

Mac OS X x86 (x86-64)

Windows x86 (x86-64)

Solaris x86 (x86-64)

Mobilné zariadenia

IE8, IE7, IE6

Firefox

Chrome

Safari

Opera

Adobe Flash 11.0.0.485

Linux x86 (x86-64)

Mac OS X x86

Windows x86

Solaris x86

Mobilné zariadenia

IE8, IE7, IE6

Firefox

Chrome

Safari

Opera

Adobe Shockwave 11.5.6.606

Mac OS X x86

Windows x86 (x86-64)

IE8, IE7, IE6

Firefox

Chrome

Safari

Opera

HTML5 Canvas element

Linux x86 (x86-64)

Mac OS X x86 (x86-64)

Windows x86 (x86-64)

Solaris x86 (x86-64)

Firefox

Chrome

Safari

Opera

(len najnovšie verzie)

Google O3D 0.1.40.1

Linux x86 (x86-64)

Mac OS X x86 (x86-64)

Windows x86 (x86-64)

Firefox

Chrome

Safari

Opera

(len najnovšie verzie)

WebGL

Linux x86 (x86-64)

Mac OS X x86

Windows x86

Mobilné zariadenia

Firefox

Chrome

Safari

Opera

(len najnovšie verzie)

Tabuľka č.9, Podporované operačné systémy, platformy a prehliadače

V tabuľke č.9 prehľadne vidíme, ktoré technológie sú najstaršie a ktoré najrozšírenejšie, čo nemusí byť nevyhnutne výhoda technológie. Tie najstaršie sú väčšinou zároveň najrozšírenejšie. Platí to najmä pri Java3D. Technológia VRML 2.0 je už v druhej verzii od svojho vzniku a teoreticky ešte na nej je čo vylepšovať, no X3D sa považuje za VRML 3.0, čo sa aj odráža na jeho funkcionalite. Jej výhodou bolo, že vychádza zo špecifikácie VRML97, čo jej umožnilo sa rýchlo rozšíriť na trhu. Podľa súčasných trendov prehliadačov však usudzujeme, že túto technológiu postupne nahradzujú iné, modernejšie technológie.

Adobe Flash sa dočkal prvých pokusov o integrovanie technológie priamo do prehliadačov, takže nie je potrebné doinštalovávať zásuvné moduly, čo zvyšuje samotnú bezpečnosť technológie a umožňuje ju lepšie kontrolovať. Nevýhodou by sa mohlo zdať, že nepokrýva dostatočne trh s Mac OS X, no tam je zastúpený inými technológiami, ktoré ho nahrádzajú.

Adobe Shockwave pokrýva značnú časť trhu a špecifikuje sa na tvorbu 3D hier, čo vyhovuje najmä používateľom OS Windows.

Technológie WebGL, O3D, HTML5 Canvas element sú mladé no i tak pokrývajú značnú časť trhu. Ich neustále napredovanie viedlo k ich postupnej integrácii do najpoužívanejších prehliadačov na trhu.

3.2.4 Porovnanie podľa miery interakcie

Text text.

3.2.5 Porovnanie podľa dostupnosti technológie

Podpora technológií na rozličných platformách je rôzna. V tejto práci sa sústreďujeme na analýzu podpory technológií na majoritných operačných systémoch Windows, Linux, Mac OS X a Solaris.

Na každom z uvedených operačných systémoch je podpora technológií z hľadiska prehrávania dostupná zadarmo a takmer pre všetky prehliadače (viď. Tabuľka č.9). Niektoré ešte neboli implementované v prehliadačoch, jedná sa najmä o prehliadač Internet explorer, ktorý avízoval implementovanie momentálne nepodporovaných technológií vo verzii 9.

Pre každú technológiu je pre používateľa dostupný aj nástroj, ktorý mu umožňuje vytvárať 3D scénu. Väčšinou ide o špecializované nástroje od spoločností, ktoré sa podieľajú na vývoji, alebo vlastnia jednotlivé technológie.

Technológia

Vlastné editory

Alternatívne editory

Java3D API 1.5.2

nemá vlastný editor

Eclipse, Netbeans

VRML 2.0

nemá vlastný editor

SwirlX3D Editor (129$), Notepad++

X3D 3.2

X3D-Edit 3.1

SwirlX3D Editor (129$), Notepad++

Adobe Flash 11.0.0.485

Adobe Flash Professional CS5 (699$), Adobe Flash Builder 4 (699$)

FlashDevelop 3.1.1

Adobe Shockwave 11.5.6.606

Adobe Director 11.5 (999$)

nemá alternatívny editor

HTML5 Canvas element

nemá vlastný editor

Notepad++, PSpad

Google O3D 0.1.40.1

nemá vlastný editor

Notepad++, PSpad

WebGL

Ambiera CopperCube 1.4.0 (145€ | 395€)

Notepad++, PSpad

Poznámka: softvér, pri ktorom nie je v zátvorke uvedená cena, je zadarmo; platený softvér má aj skúšobnú verziu

Tabuľka č.10, Prehľadová tabuľka dostupnosti technológií pre používateľa