In die Tiefe gehen

Alles muss heute dreidimensional sein: vom Kino über den Fernseher bis zur Taschenspielkonsole. Leistungsstarke Prozessoren und neue Ansätze wie WebGL, XML3D und X3DOM machen auch Webbrowser fit für die dritte Dimension.

In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen
Lesezeit: 6 Min.
Von
  • Gerhard Völkl
Inhaltsverzeichnis

Seit Jahren versuchen Entwickler mit überschaubarem Erfolg, interaktive 3D-Inhalte ins Web zu bringen. Bereits vor über 15 Jahren, als gerade das „Internet für jedermann“ interessant wurde, kamen Mitarbeiter von SGI (Silicon Graphics Incorporated) auf die Idee, interaktive 3D-Szenen in einem Webbrowser darzustellen – nicht irgendwelche fertigen Filme, sondern Szenen, deren Bilder der Computer vor Ort in Echtzeit berechnet. Allerdings war das die Zeit der 386/486er-PCs. Auf Grafik-Workstations für 150 000 DM und mehr liefen die Programme ganz gut. Mit PCs, die damals nicht einmal eine spezielle Grafikhardware hatten, war ein solcher Versuch eher eine Pioniertat als ein Vergnügen.

Aus diesen Anfängen entwickelte ein Konsortium aus verschiedenen Firmen und Instituten relativ schnell einen ISO-Standard für eine eigene Beschreibungssprache von 3D-Inhalten: VRML97 (Virtual Reality Markup Language). Damit der Anwender etwas sehen konnte, musste er ein Plug-in für seinen Browser laden. Die Beschreibung der Szene war immer in einer Datei mit der Endung *.wrl untergebracht. Für Entwickler war es nicht einfach, eine Kommunikation zwischen Webseite und 3D-Szene zu bewerkstelligen. Und dass die Standardrechner ohne leistungsfähige GPUs noch nicht reif für 3D im Web waren, zeigt Abbildung 1, die eine VRML-Darstellung aus dem Jahr 1997 einer aktuellen WebGL-Grafik gegenüberstellt.

Die Darstellung von 3D im Web hat Fortschritte gemacht: links das Sonnensystem in VRML (1997), unten mit WebGL (2010) (Abb. 1).

All diese Gründe – langsame Hardware, externes Plug-in und mangelnde Integration in die Webseite – bewirkten, dass sich VRML nicht durchsetzen konnte. Auch gab es keine Killer-Applikation, also eine VRML-Anwendung, die jeder haben wollte, sodass der Durchschnittsanwender keinen Grund sah, sich mit diesem Thema zu beschäftigen.

Schließlich wurde aus dem VRML-Konsortium das Web3D-Konsortium, und aus VRML97 ging rund drei Jahre später X3D hervor, ein XML-Dateiformat, das die Beschreibung einer kompletten 3D-Szene enthält. Um etwas mehr Interaktion zwischen Szene und Webseite zu erreichen, hat das zuständige Gremium eine API, Scene Access Interface (SAI), kreiert. JavaScript oder Java kann darüber aus dem Browser heraus auf die 3D-Inhalte zugreifen und sie verändern oder erweitern. Über die Jahre gab es eine Menge von Plug-ins – ob Java3D, Erweiterungen für Flash oder Zugriffsmodule für bestimmte Webspiele. Alle Versuche blieben auf Nischen beschränkt und hätten auch ohne Browser-Integration laufen können.

Frischen Wind in die Sache bringt der neue Webstandard HTML5. Im Lauf der Jahre hat das Web sich von der eher statischen Hypertext Markup Language zu mehr Dynamik mit DOM (Document Object Model), JavaScript und Ajax entwickelt. Die Anwender wollen Interaktion und die Integration von Medien, ob nun Videos, Bilder oder Musik. Diese Strömungen griffen Mitarbeiter von Apple, Mozilla und Opera auf und erarbeiten in der Web Hypertext Application Technology Working Group (WHATWG, www.whatwg.org) ein neues HTML. Später übernahm das W3C diese Spezifikation für HTML5, die jetzt beide Gruppen weiterentwickeln.

Neben vielen anderen Neuerungen enthält HTML5 mit canvas ein zusätzliches Element, in das JavaScript während der Laufzeit frei zeichnen kann. Wie dies mit 2D funktioniert, war von Anfang klar, aber mit 3D? In diese Lücke sprang die nächste Standardisierungstruppe, die Khronos Group. Hier hatten sich vor Jahren alle Firmen zusammengefunden, die sich an der Weiterentwicklung der Grafik-API OpenGL beteiligen wollten. Mitglieder der Khronos Group sind unter anderem AMD, Apple, ARM, Ericsson, Intel, Nokia, NVIDIA, Samsung und Sony.

Die neuen Web-3D-Techniken und leistungsfähige Standardhardware machen fotorealistische Landschaften im Browser möglich (Abb. 2).

Es lag nahe, aus OpenGL eine 3D-Grafik-API für JavaScript abzuleiten und in HTML5 zu integrieren. Das Ganze firmiert unter dem Begriff WebGL (siehe den Artikel auf Seite 46). Dadurch wird 3D integraler Bestandteil von HTML5 und jedes Browsers, der diesen Standard komplett unterstützt. Zusätzliche Plug-ins sind nicht mehr erforderlich und eventuelles Nachladen von Software für die 3D-Darstellung entfällt.

Um ein Bild auf den Schirm zu bringen, gibt es zwei Ansätze: Der prozedurale beschreibt, wie das Bild zu zeichnen ist, während der deklarative definiert, was auf dem Bild zu sehen ist. WebGL ist der klassische, prozedurale Weg. Jedes Mal, wenn sich etwas in der 3D-Szene verändert, zeichnet JavaScript über API-Aufrufe ein neues Bild. Diesen Weg favorisieren in der Regel Entwickler. Viele Webdesigner hingegen bevorzugen die deklarative Herangehensweise, die sie von HTML kennen. Hierfür gibt es zwei neue interessante Ansätze: X3DOM und XML3D. Beide verwenden als Basis WebGL.

X3DOM vom Fraunhofer-Institut für Graphische Datenverarbeitung (IGD) integriert den X3D-Standard komplett in den Browser. XML3D des Computergrafik-Labors der Universität des Saarlandes hingegen erweitert HTML und CSS um die Möglichkeit, 3D darzustellen (beide Ansätze beschreibt der Artikel auf Seite 54).

Angefeuert durch WebGL und eine immer bessere Grafikhardware ist 3D im Browser wieder in Fahrt gekommen. Fast alle Browserhersteller sind bereits auf den Zug aufgesprungen. Nur Microsoft zögert noch ein wenig. Mit dem Internet Explorer 9 hat man sich zwar zu den meisten Inhalten von HTML5 bekannt, aber die Entscheidung bezüglich WebGL noch offengelassen. Die Technik ist jetzt bereit für Web 3D. Entscheidend für die Verbreitung werden aber die Inhalte sein. Momentan sind 99 Prozent der 3D-Grafikanwendungen Spiele. Daher kann man davon ausgehen, dass die Spieleindustrie maßgeblich mitentscheiden wird, welche Techniken sich durchsetzen werden.

ist Fachjournalist fĂĽr .Net-Techniken, Datenbankprogrammierung und Computergrafik.

In der Print-Ausgabe lesen Sie auĂźerdem, was man mit WebGL, dem JavaScript-Binding von OpenGL ES, bereits machen kann. Und warum die beiden parallel dazu entwickelten Systeme X3DOM und XML3D fĂĽr 3D im Browser lieber auf HTML und DOM-Scripting zurĂĽckgreifen.

Beispiellistings zu WebGL finden sich auf dem iX-Listingsserver. In einer entsprechend modifizierten Browserversion fĂĽr X3DOM, einem angepassten Browser fĂĽr XML3D beziehungsweise einem Browser mit WebGL-UnerstĂĽtzung sind die Beispiele zu X3DOM und XML3D sowie das WebGL-Beispiel direkt online zu sehen.

www.ix.de/ix1011042 (ka)