# Web3D

Der Begriff Web3D umfasst sämtliche Techniken, die dreidimensionale Computergrafik bei Webanwendungen einsetzen.
Web3D Anwendungen benutzen meist ein Browser-Plug-in, um das Rendern von 3D-Modellen, ggfs. kombiniert mit Benutzer-Interaktion, in den Webbrowser zu verlegen. Mit der Verbreitung leistungsfähiger 3D-Grafikkarten und entsprechender 3D-APIs (wie Direct3D oder QuickDraw 3D) wurden die Voraussetzungen geschaffen, um 3D-Darstellungen für jedermann im Web zu ermöglichen – eine Technik, die vorher häufig nur Fachleuten mit spezifischen Anwendungen im CAD-, Architektur- und Design-Bereich zugänglich war.
Eine Reihe von Herstellern hat seit Mitte der 1990er Jahre Web-3D-Software entwickelt, basierend teils auf verbreiteten Sprachen wie JavaScript und Java, teils auf eigenen Entwicklungen. Mit dem Platzen der New-Economy-Blase ab 2000 erhielt diese Entwicklung einen deutlichen Dämpfer und viele Produkte wurden eingestellt. Zudem verlor der bis dahin als Grundlage oder Vorbild gesehene VRML-Standard seine Unterstützung durch SGI. Auch reagierte der Markt nicht mit der erwarteten Nachfrage auf Web3D.
Zur Weiterentwicklung und Etablierung freier Web3D-Technologien wurde später das Web3D-Konsortium gegründet, das in kleine Arbeitsgruppen für verschiedene Anwendungsbereiche gegliedert ist, darunter Übertragung, Sicherheit und Syntax. Im Jahre 2004 wurde vom Konsortium die Beschreibungssprache X3D als neuer Web-3D-Standard erklärt (ISO/IEC 19775). X3D löst das ältere VRML97 ab und verwendet die Datenbeschreibungssprache XML.
Ein anderer Pfad für die Entwicklung räumlicher visueller Darstellungen im Web ergibt sich aus virtuellen Welten wie Second Life und Computerspielen. Hier arbeiten verschiedene Hersteller an Browser-Plugins zur 3D-Darstellung, so dass keine gesonderte Applikation mehr installiert werden muss.
Seit 2014 wird die WebVR-Programmierschnittstelle entwickelt, gleichzeitig entstehen JavaScript-Bibliotheken wie three.js und A-Frame, die in modernen Browsern einen leichten Einsatz dreidimensionaler Computergrafik ermöglichen.

## Klassifizierung

Die verschiedenen Software-Verfahren lassen sich etwa nach folgenden Merkmalen klassifizieren:
* Standard-Konformität – Einhaltung anerkannter und verbreiteter Standards
* Installierte Basis – Verbreitung in Browsern, ohne Software neu zu installieren zu brauchen; davon abhängig auch die Größe der Gemeinschaft, die das Verfahren unterstützt
* Abstraktion – Effizienz, 3D-Funktionen programmieren zu können
Beispiele:
* JavaScript ist in den Browser integriert und weist damit die höchste installierte Basis auf, allerdings kennt die Sprache selbst keine standardisierten 3D-Funktionen; die Abstraktion ist von der ggf. geladenen 3D-Bibliothek abhängig.
* Java ist etwas weniger häufig im Browser vorhanden, zudem besteht eine stärkere Versionsabhängigkeit. Mit Java 3D wird aber eine Programmierschnittstelle geliefert, die übliche 3D-Funktionen und -Strukturen abstrahiert und damit dem Programmierer die Arbeit erleichtert. Eine Reihe von Bibliotheken setzen darauf auf, um dieses Konzept zu erweitern, ohne jedoch selbst Standards zu folgen.
* VRML und neuerdings X3D gehen einen Schritt weiter, indem sie auf Basis eines klar definierten Standards höhere Abstraktion bieten. Grundfunktionen wie die Bewegung des Modells sind in gängigen Renderern meist bereits enthalten. Die freie Programmierbarkeit, etwa für Interaktionen, ist aber eingeschränkt. Zur Darstellung in gängigen Browsern ist stets ein VRML-Render-Plugin zu installieren, wobei eine Reihe kommerzieller und Open-Source-Varianten zur Verfügung stehen.
* Adobe Flash (vormals Macromedia Flash) folgt als herstellereigenes Produkt ursprünglich keinen offenen Standards, kann aber eine breite installierte Basis vorweisen, da Flash-Funktionen inzwischen in die meisten Browser integriert sind. Mit Actionscript 3 folgt es seit Juni 2006 auch dem ECMAScript-Standard. Das Format und die Sprache ActionScript bieten aber von Haus aus nur einfache 3D-Funktionen, die bei praktischen 3D-Anwendungen meist durch zusätzliche Bibliotheken ergänzt werden müssen.
* Adobe Director vom selben Hersteller bietet mit Shockwave 3D eine deutlich leistungsfähigere 3D-Programmierumgebung und unterstützt auch die Hardware-Rendering-APIs OpenGL und Direct3D, sodass die Leistung der Grafikkarte genutzt wird. Es ist jedoch weniger verbreitet und erfordert auf Anwenderseite die Installation eines Plugin von inzwischen 2,6 MB Größe.
* Spezifische Lösungen wie Hypercosm bieten nochmals höhere Abstraktion und damit schnellere Umsetzung von 3D-Anwendungen, indem physikalische Modelle, Simulationen und Interaktionen bereits in der Sprache berücksichtigt sind. Auch hier wird OpenGL unterstützt, und es ist ein eigenes Plugin notwendig, die Verbreitung und auch die Entwicklergemeinde sind klein, was aber spezialisierte Anwender wie die NASA nicht abschreckt.