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