Nieuwe stap richting 3D-web
Na enige stilte lijkt er nieuw leven te komen in Googles browsergebaseerde 3D-project O3D. Google sleutelt samen met Mozilla aan diens WebGL om hardwareversnelde graphics in webbrowsers te krijgen.
Vorig jaar bracht zowel Google als Mozilla een concept uit om browsers in staat te stellen ingewikkelde 3D-beelden te genereren. Google stelde zijn O3D voor, dat beelden in C++ berekent, terwijl Mozilla WebGL lanceerde: een Javascript-bibliotheek die via OpenGL de grafische kaart aanspreekt.
Wederopleving Javascript
Beide projecten hadden echter als pijnpunt dat ze met Javascript werken, een webstandaard die vaak onder vuur ligt vanwege z’n snelheid. Maar de nieuwe generatie Javascript-engines heeft als voornaamste kenmerk dat ze de prestaties op nieuwe hoogten brengt.
Sinds de komst van codebibliotheken zoals jQuery kent de programmeertaal een wederopleving en wordt deze alsmaar vaker als alternatief voor Flash gebruikt. Om die reden vechten browserfabrikanten om de snelste Javascriptmotor. Al is de snelheid daarvan nog niet te vergelijken met die van in C++ gecompileerde software.
Google gooit roer om
Toch gooit Google het roer plots om. In plaats van verder te gaan met het concept van O3D, werkt het aan een Javascript-bibliotheek die O3D-commando’s naar WebGL-syntax vertaalt. Een van de ontwikkelaars van Googles Chromium-project schrijft het volgende: “Ik heb veel vooruitgang geboekt met de Javascript-classes. Sommige van de originele O3D-demo’s werken nu in WebGL met bijna geen aanpassing van de broncode.”
De vraag is natuurlijk waarom Google kiest om samen met Mozilla verder aan WebGL te werken. Een belangrijk punt is alvast dat WebGL een webstandaardsuggestie is, terwijl O3D met een plug-in werkt. Het verschil is dat een webstandaard (zoals HTML) rechtstreeks in de browser geïmplementeerd wordt en een plug-in vaak niet.
OpenGL en Angle
Een ander kenmerk van WebGL is dat Mozilla ervoor samenwerkt met OpenGL-fabrikant Khronos Group. OpenGL is een openstandaard-API die net zoals Microsoft-tegenhanger Direct3D hardwaregeaccelereerde graphics genereert. Zowel OS X als Linux gebruikt het als zijn 3D-standaard.
De nieuwste release ervan zou zelfs met DirectX 11 kunnen wedijveren. De variant die Mozilla gebruikt, OpenGL ES, draait zo vlot dat hij zelfs op de iPhone staat.
Het probleem van OpenGL is echter dat niet iedereen het kan draaien. Veel Windows-pc’s beschikken nog over een oudere grafische kaart en hebben geen OpenGL-stuurprogramma (driver) geïnstalleerd. Daarbij komt dat Direct3D-drivers voor Windows vaak beter zijn dan hun OpenGL-variant omdat veel games uitsluitend voor DirectX gemaakt worden.
Om te voorkomen dat OpenGL een struikelblok vormt, komt Google nu met Angle op de proppen. Angle staat voor Almost Native Graphics Layer Engine en vertaalt OpenGL-commando’s naar Direct3D-compatibele code. Door Angle aan het WebGL-project toe te voegen, zou de voorgestelde standaard op alle besturingssystemen moeten werken.
Mozilla ziet zichzelf als verdediger van openbroncode op het web en hoopt met WebGL OpenGL te lanceren als kernonderdeel van een 3D-webstandaard. Daarbij streeft het bedrijf naar een steeds evoluerend internet waarbij het met zijn browser Firefox de norm voor standaard respecterende browsers wil zijn.
Google heeft nog meer baat bij 3D op het web. Zijn besturingssysteem Chrome OS is in feite niet meer dan een gepimpte browser. Hoe meer functionaliteit er aan een browser toegevoegd wordt, des te meer kan Google concurreren met andere besturingssystemen. Na 2D-graphics te kunnen tekenen met SVG en de nieuwe HTML 5-standaard, wil Google nu ook 3D-functionaliteit in browsers zien verschijnen.
Wie al een voorproefje van WebGL wil, kan de testpagina van de Khronos Group bezoeken. Je moet wel eerst WebGL in je browser aanzetten. Instructies daarvoor vind je hier voor respectievelijk Firefox, Chrome en Safari.