2026-07-14

3D im Browser: Technologien und Frameworks

3D im Browser: Technologien und Frameworks

Das Web ist leise zu einer ernsthaften Plattform für 3D-Erlebnisse geworden. Was als einfache rotierende Würfel begann, hat sich zu Produktkonfiguratoren für große Marken, Datenvisualisierungen für Wissenschaftler, Spiele in voller Größe und immersive AR/VR-Erlebnisse entwickelt – alles läuft in einem Browser-Tab, keine Installation erforderlich.

Die Kerntechnologien, die Web-3D antreiben

An der Basis gibt es einige Schlüsseltechnologien, die all dies ermöglichen. Stellen Sie sie sich als die Schichten eines Kuchens vor – jede baut auf der darunterliegenden auf.

WebGL 2 ist die universelle Basislinie. Es ist seit Jahren in jedem Browser, es ist stabil und hat ein riesiges Ökosystem an Werkzeugen und Bibliotheken. Wenn Sie heute für das Web entwickeln, läuft Ihr Code letztendlich auf WebGL 2, egal ob Sie ihn direkt schreiben oder ein Framework darüber verwenden.

WebGPU ist der glänzende Neuzugang. Es ist eine moderne, niedrigschwellige Grafik-API, die Entwicklern eine direktere Kontrolle über die GPU gibt – ähnlich wie Vulkan, Metal oder DirectX 12 auf nativen Plattformen. Es ermöglicht Compute-Shader (Nutzung der GPU für allgemeine Mathematik, nicht nur für Grafiken), besseres Multithreading und vorhersagbarere Leistung. Die Browserunterstützung wächst schnell: Es wird in Chrome und Edge ausgeliefert, ist in Firefox hinter einer Flagge verfügbar und in Safari Technology Preview. Für neue Projekte, bei denen Leistung wichtig ist, lohnt es sich, darauf zu achten.

WebXR ist der Weg, um virtuelle und erweiterte Realität in den Browser zu bringen. Es ist die Standard-API für VR-Headsets wie Meta Quest, Apple Vision Pro und sogar einfache Cardboard-Viewer sowie für AR auf Telefonen und Tablets. WebXR übernimmt die komplexe Arbeit der Verfolgung der Kopfposition, des Renderns von Stereobildern und der Verwaltung von Controller-Eingaben – damit Sie sich auf den Aufbau des Erlebnisses konzentrieren können.

WebAssembly (Wasm) verdient ebenfalls eine Erwähnung. Es ermöglicht die Ausführung von Code, der in C++, Rust oder anderen Sprachen geschrieben wurde, mit nahezu nativer Geschwindigkeit im Browser. So können schwere Engines wie Unity, Unreal und Godot ins Web exportieren – sie kompilieren ihren C++-Kern zu WebAssembly und führen ihn zusammen mit JavaScript aus.

Schließlich ermöglichen GPU-Texturkomprimierungsformate wie Basis Universal und KTX2 den Versand von Texturen, die im GPU-Speicher komprimiert bleiben, was Bandbreite und Speicher spart – entscheidend für mobile Geräte.

Hochwertige Frameworks: Sie möchten wahrscheinlich kein rohes WebGL schreiben

Rohes WebGL zu schreiben ist wie ein Automotor von Grund auf neu zu bauen – möglich, aber selten die beste Nutzung Ihrer Zeit. Frameworks kümmern sich um den Boilerplate-Code, bieten nützliche Abstraktionen und lassen Sie in Begriffen von Szenen, Objekten und Materialien denken, anstatt von Puffern, Shadern und Draw-Calls.

Three.js ist der unangefochtene König des Ökosystems. Es gibt es seit 2010, hat eine riesige Community, eine hervorragende Dokumentation und funktioniert mit allen wichtigen 3D-Formaten. Es bietet Ihnen einen Szenengraphen (einen Baum von Objekten), Kameras, Lichter, Materialien, Geometrien, Animationssysteme, Nachbearbeitungseffekte und Loader für GLTF, OBJ, FBX und mehr. Das React-Ökosystem hat es durch React Three Fiber (R3F) aufgenommen, mit dem Sie Three.js-Szenen deklarativ als React-Komponenten schreiben können – ein Game-Changer, wenn Sie bereits mit React entwickeln.

Babylon.js verfolgt einen anderen Ansatz – es ist eher wie eine vollwertige Spiel-Engine im Browser. Es hat einen leistungsstarken visuellen Editor, integrierte Physik, einen knotenbasierten Materialeditor, hervorragende TypeScript-Unterstützung und eine erstklassige WebXR-Implementierung. Wenn Sie etwas Spielähnliches bauen oder einen editorgetriebenen Workflow benötigen, ist Babylon.js eine fantastische Wahl.

PlayCanvas ist einzigartig, weil es cloud-nativ ist. Der Editor läuft in Ihrem Browser, Ihr Projekt lebt in der Cloud und mehrere Personen können in Echtzeit zusammenarbeiten. Es verwendet eine Entity-Component-System-Architektur und ist bei Teams beliebt, die spielbare Anzeigen, Instant Games und kollaborative 3D-Tools entwickeln.

A-Frame verfolgt einen deklarativen, HTML-ähnlichen Ansatz. Sie schreiben 3D-Szenen als benutzerdefinierte HTML-Elemente: , , . Es basiert auf Three.js, bietet aber ein Entity-Component-System, das sich für Webentwickler natürlich anfühlt. Es ist besonders beliebt für WebXR-Projekte und den Bildungsbereich.

OGL ist die Wahl des Minimalisten – nur ein paar Kilobyte, keine Meinungen, nur eine dünne Schicht über WebGL. Ideal für größenbeschränkte Projekte wie Bannerwerbung oder wenn Sie Ihre eigenen Abstraktionen von Grund auf neu erstellen möchten.

Das React-Ökosystem: Komponentengesteuertes 3D

Wenn Sie ein React-Entwickler sind, ist React Three Fiber (R3F) transformativ. Es ist ein React-Renderer für Three.js – das bedeutet, Sie schreiben Ihre 3D-Szene mit JSX, genau wie Ihre Benutzeroberfläche. , , werden zu Komponenten. Sie erhalten die gesamte Leistung von React: Hooks für Animationen, Kontext für Zustand, Suspense für asynchrones Laden und das gesamte React-Ökosystem.

Das R3F-Ökosystem ist reich an Helfern geworden. @react-three/drei bietet Ihnen Dutzende vorgefertigter Komponenten: Orbit-Steuerungen, HTML-Overlays, Text, Umgebungskarten, Loader und mehr. @react-three/postprocessing bringt Nachbearbeitungseffekte. @react-three/rapier und @react-three/cannon-es fügen Physik hinzu. Sie können überraschend komplexe 3D-Apps mit sehr wenig Boilerplate-Code erstellen.

Für WebXR in React gibt es React XR, das denselben deklarativen Ansatz in die AR/VR-Entwicklung bringt.

Dateiformate: glTF ist das JPEG der 3D-Welt

Wenn Sie 3D ins Web bringen, ist glTF 2.0 (GL Transmission Format) der Standard. Es wird oft als „JPEG der 3D-Welt“ bezeichnet – ein lizenzgebührenfreies, effizientes, laufzeitbereites Format, das von der Khronos Group (denselben Leuten hinter WebGL und WebGPU) gepflegt wird.

glTF gibt es in zwei Varianten: .gltf (JSON + separate Binär-/Datendateien) und .glb (alles in einer einzigen Binärdatei). Für das Web wird in der Regel .glb bevorzugt – eine Datei, eine Anfrage, einfaches Caching.

glTF unterstützt von Haus aus physikalisch basierte Rendering (PBR)-Materialien – Metallic/Rauheit-Workflow, Normal Maps, Occlusion Maps, Emissive Maps. Es verarbeitet Animationen, Skelett-Rigging (Skinning) und Morph-Targets (Blend Shapes). Für die Komprimierung reduziert Draco die Geometriegröße drastisch, und KTX2/Basis Universal übernimmt die Texturkomprimierung, die auf der GPU komprimiert bleibt.

Andere Formate existieren – USDZ für Apples AR Quick Look, FBX und OBJ als Legacy-Austauschformate – aber für die Webauslieferung ist glTF die Antwort. Vermeiden Sie FBX/OBJ für die Produktion im Web; sie sind ausführlich, mangelhaft standardisiert und komprimieren nicht gut.

Die Asset-Pipeline: Von der Modellierung zum Browser

Ein 3D-Modell effizient von Ihrer Modellierungssoftware in den Browser zu bringen, umfasst einige Schritte.

Die Modellierung erfolgt in Werkzeugen wie Blender (kostenlos und ausgezeichnet), Maya, Cinema 4D oder Modo. Verwenden Sie beim Exportieren den offiziellen Khronos glTF-Exporter für Blender – er wird von den Spezifikationsautoren gepflegt und erzeugt die sauberste Ausgabe.

Optimierung ist der Ort, an dem die Magie für die Webleistung geschieht. glTF Transform (ein Befehlszeilentool) kann Draco-Geometriekomprimierung anwenden, Texturen auf KTX2/BasisU skalieren und komprimieren, Mipmaps generieren, ungenutzte Daten entfernen und mehr. Meshoptimizer komprimiert Vertex- und Indexpuffer weiter. Der glTF Validator erkennt Spezifikationsverstöße, bevor Sie ausliefern.

Verwenden Sie für das Hosting ein CDN mit geeigneten CORS-Headern und Unterstützung für HTTP-Range-Anfragen – dies ermöglicht das progressive Laden großer Modelle. Einige Teams verwenden spezialisierte 3D-CDN, die Formatkonvertierung und Optimierung im laufenden Betrieb durchführen.

Physik und Interaktion: Es real wirken lassen

Statisches 3D ist hübsch; interaktives 3D ist fesselnd. Für die Physik sind die Hauptoptionen in der JavaScript/Wasm-Welt Cannon-es (ein leichter Port von Cannon.js), Rapier (eine schnelle, moderne, auf Rust basierende Engine, die zu Wasm kompiliert wurde, mit hervorragender R3F-Integration über @react-three/rapier), Ammo.js (ein Port der branchenüblichen Bullet-Physik – leistungsstark, aber schwer) und Jolt Physics (ein neuerer, sehr schneller Wasm-Port).

Für die Interaktion ist Raycasting die grundlegende Technik – ein unsichtbarer Strahl wird von der Kamera durch die Maus-/Fingerposition geschossen, um zu sehen, welches 3D-Objekt getroffen wurde. Bibliotheken bieten vorgefertigte Steuerungen: OrbitControls zum Drehen um ein Objekt, DragControls zum Bewegen von Dingen, TransformControls für Gizmo-artige Translation/Rotation/Skalierung. In WebXR erhalten Sie controllerbasierte Interaktion – Zeigen, Greifen, Teleportieren – die von der XR-Integration des Frameworks übernommen wird.

Leistungsbudgets: Es flüssig halten

Das Web ist eine feindliche Umgebung für die Leistung. Benutzer sind auf allem unterwegs, von Flaggschiff-Telefonen bis zu fünf Jahre alten Laptops. Das Ziel von 60 Bildern pro Sekunde bedeutet, dass Sie 16,6 Millisekunden pro Bild haben. Für VR benötigen Sie 90fps (11,1ms) oder sogar 120fps (8,3ms).

Ungefähre Budgets, die Sie anstreben sollten: unter 100.000 Dreiecke für Mobilgeräte, unter 1 Million für Desktop. Unter 50 Draw-Calls ist ideal; unter 200 ist akzeptabel. Texturspeicher unter 100 MB auf Mobilgeräten, 500 MB auf Desktop. Die Shader-Komplexität ist wichtig – vermeiden Sie dynamische Verzweigungen, begrenzen Sie Textur-Samples, halten Sie die Anweisungsanzahl niedrig.

Profiling-Tools sind Ihre Freunde. Der Performance-Tab von Chrome DevTools, Spector.js für Frame-Erfassung, das integrierte Statistik-Panel von three.js und detect-gpu zur Geräteklassifizierung zur Laufzeit. Die wichtigste Erkenntnis: Messen Sie auf echten Geräten, nicht nur auf Ihrer Entwicklungsmaschine.

Progressive Verbesserung: Graceful Degradation

Nicht jedes Gerät kann Ihre ausgefallene 3D-Szene ausführen. Progressive Verbesserung bedeutet, überall eine nutzbare Erfahrung zu bieten und dann 3D dort hinzuzufügen, wo es unterstützt wird.

Beginnen Sie mit einem 2D-Fallback – einem Hero-Bild, einer Karussell, einem statischen Diagramm. Erkennen Sie die WebGL-Unterstützung (und WebGPU, WebXR) zur Laufzeit. Für Geräte der unteren Preisklasse liefern Sie Modelle mit niedrigerer Polygonzahl, kleinere Texturen und deaktivieren Sie teure Effekte wie Schatten, Bloom oder Screen-Space-Reflections. Tools wie three.js' detectGPU oder der WebGL Report können helfen, Gerätefähigkeitsstufen zu klassifizieren.

Das Ziel ist nicht, alles überall gleich aussehen zu lassen – es ist, die Kernfunktionalität überall zum Laufen zu bringen und sie dort zum Strahlen zu bringen, wo die Hardware es erlaubt.

Lassen Sie uns zusammenarbeiten

Benötigen Sie weitere Informationen, Hilfe bei Ihrem Projekt oder zur Entwicklung einer Idee?

Ob einfache Frage, kurzer Zweifel oder ein 5-Minuten-Chat, schreib mir einfach—es kostet nichts und ich helfe immer gerne. Ich liebe es, Probleme zu verstehen, kreative Lösungen zu finden und mich auf einfache, zuverlässige und unkomplizierte Ideen zu konzentrieren, die sich schnell umsetzen lassen.

Kontaktiere mich

Thema wechseln

Wählen Sie ein spezielles Thema zum Erkunden: