Letošek bude prvním rokem 3D na Webu aneb WebGL rules!

16. 2. 2010 11:26 (aktualizováno) Martin Hassman

Vzpomínáte na všechny ty pokusy emulovat 3D v JavaScriptu? Na javascriptového Wolfensteina, Dooma nebo 3D šachy? Není to dávno, co se objevily první vážné pokusy přenést 3D přímo do prostředí Webu.

Tím přímo myslím, že se jednak stane součástí stránky, bude s ním možné manipulovat z JavaScriptu, ale zároveň si zachová všechny důležité parametry (např. využití akcelerace grafických karet).

První pokusy Firefoxu a Opery s 3D moc úspěšné nebyly (a nejspíš si na ně už ani nevzpomenete), navíc nebyly mezi sebou kompatibilní. Pozdější projekt O3D od Googlu si již pozornost zasloužil, ovšem jednalo se jen o plugin a i ten byl s ostatními nekompatibilní.

Khronos vládne všem, Khronos jim všem káže

Pořádek nastolila až skupina Khronos (z její dílny pochází i standard OpenGL), která během minulého roku stihla vytvořit první pracovní verzi specifikace WebGL (čili OpenGL pro Web). K vykreslení 3D používá HTML značku canvas, která byla pro podobná vykreslování od začátku určena. Pro přepnutí canvasu do 3D režimu stačí zavolání canvas.getContext( „webgl“ ).

Podstatné je, že se skupina Khronos současně dohodla s výrobci prohlížečů (až na Microsoft v zásadě se všemi). Rozepsal jsem se o tom v článku na svém druhém blogu HTML456, ale vás teď určitě zajímá tohle video:

[youtube Vva36undIss]

Na video upozornil @ajaxian

Líbí? Vše z videa si můžete vyzkoušet sami na Demu GLGE, pokud máte build prohlížeče s experimentální podporou WebGL.

Všimněte si při tom, že se nejedná jen o nějaký hloupý 3D model. Při procházce zahradou nemůžete např. snadno projít skálou, nýbrž pohybový mechanismus vás navede podél ní, jak je u moderních 3D her zvykem.

Z Blenderu na 3D Web

Vaší pozornosti by nemělo ujít, jakým způsobem bylo toto demo připraveno. Bylo totiž vytvořené v Blenderu, ze kterého existuje export do XML formátu, jenž umí zpracovat javascriptová knihovna GLGE. Demo z videa najdete popsané v tomto XML souboru.

Vytvořili jste někdy v Blenderu něco pěkného? Zkuste to schválně najít a vyexportovat pro GLGE. Funguje to?

WebGL přichází

Vše potřebné je tedy na světě. Během tohoto, maximálně následujícího roku se implementace WebGL objeví ve stabilních verzích většiny prohlížečů. A můžeme jen doufat, že mezitím někdo napíše emulační vrstvu pro běh v IE (podobně jako Google vytvořil emulační vrstvu pro běh 2D canvasu v IE). K emulaci může použít jak 2D projekci do VML (to by bylo ovšem pomalé), tak třeba Flash (tam by rychlost už snad mohla stačit).

Pokrok nezastavíš. Ještě před rokem mě 3D na Webu naplňovalo velkou skepsí. Před půl rokem jsem už cítil jistou naději. Dnes to beru jako hotovou věc a zbývá již jen mechanické čekání na dobu, kdy to bude všechno hotové a běhat mezi uživateli.

Vývoj letí kupředu už teď. Vedle knihovny GLGE z dema tak vznikají další knihovny pro WebGL, např. SceneJS nebo X3DOM. Vznikají už i vizionářské ukázky, nebude tak problém skloubit WebGL s touch-screen ovládáním na mobilu apod. Zajímavé novinky se objevují každý týden, pokud o nich chcete vědět pravidelně, je tu blog Learning WebGL, pokud vám stačí občasné shrnutí, čtěte tento blog a vedle něj HTML456.

Co zbývá dodat?

WebGL rules!

Ještě shrnutí důležitých odkazů:

Sdílet