Skip to content

Babylon.js 9.0: Clustered Lighting, Node-Partikel und eine umfassende Überarbeitung des Gaussian Splatting

Babylon.js 9.0 ist da – und es ist die bislang größte Veröffentlichung der quelloffenen WebGPU-/WebGL-Engine. Das wichtigste neue Feature ist ein Clustered-Lighting-System, mit dem Szenen Hunderte oder Tausende dynamische Lichtquellen bei flüssigen Bildraten sowohl mit WebGPU als auch mit WebGL 2 rendern können.

Der neue Node Particle Editor in Babylon.js 9.0

Clustered Lighting verändert alles

Bei herkömmlicher Beleuchtung pro Pixel muss jedes Pixel die Beiträge aller Lichtquellen in der Szene berechnen – selbst wenn diese weit entfernt sind. Clustered Lighting löst dieses Problem, indem es Lichtquellen in Kacheln im Bildschirmraum und Tiefensegmente gruppiert. Beim Rendern wertet jedes Pixel nur die Lichtquellen aus, die es tatsächlich beeinflussen. Dadurch kann eine Szene mit 1.000 dynamischen Lichtquellen nun in Echtzeit laufen, statt nur schleppend dargestellt zu werden.

Das funktioniert mit WebGPU und WebGL 2, sodass die Leistungsverbesserung ein möglichst breites Publikum erreicht.

Texturierte Flächenlichter

Flächenlichter wurden mit Babylon.js 8.0 eingeführt. Version 9.0 ergänzt Emissionstexturen, sodass sich beliebige Bilder durch ein rechteckiges Flächenlicht projizieren lassen. Denkbar sind etwa Projektionen wie von Buntglasfenstern, LED-Panel-Anzeigen oder filmische Beleuchtungsaufbauten mit physikalisch korrekter Lichtemission.

Volumetrische Beleuchtung

Das neue System für volumetrische Beleuchtung rendert Lichtstrahlen durch Nebel, Staub und Dunst. Es umfasst konfigurierbare Extinktions- und Phasenparameter, die kreative Kontrolle darüber ermöglichen, wie sich Licht in der Atmosphäre streut. Das System unterstützt gerichtete Lichtquellen und verwendet WebGPU-Compute-Shader, sofern verfügbar, mit Ausweichlösungen für WebGL 2.

Node Particle Editor

Der Node Particle Editor (NPE) ist ein visuelles Werkzeug zum Erstellen von Partikelsystemen durch Ziehen und Verbinden von Nodes. Wer bereits den Node Material Editor verwendet hat, kennt den identischen Arbeitsablauf. Ein nicht-destruktiver Node-Graph bietet vollständige Kontrolle über Emissionsformen, Sprite-Sheets, Aktualisierungsverhalten und Unteremitter. Flow-Maps und Gravitationsattraktoren runden die Verbesserungen am Partikelsystem ab.

Umfassende Überarbeitung des Gaussian Splatting

Babylon.js führte die Unterstützung für Gaussian Splatting mit Version 7.0 ein. Version 9.0 überarbeitet das System grundlegend und ergänzt Schattenwurf, Triangle Splatting für eine opake, meshartige Darstellung sowie Unterstützung für die komprimierten Formate SOG und SOGS neben .splat-, .ply- und .spz-Dateien. Nun lassen sich mehrere Splat-Assets mit globaler Sortierung in einer einzigen Szene kombinieren, wobei jeder Teil unabhängig transformiert und animiert werden kann. Adobe hat zu dieser Arbeit beigetragen.

Frame-Graph-System

Der Frame Graph, der in Version 8.0 als Alpha-Feature eingeführt wurde, erreicht mit dieser Veröffentlichung Version 1. Dabei handelt es sich um einen gerichteten azyklischen Graphen, in dem jeder Node eine Rendering-Aufgabe darstellt. Das System verwaltet Texturzuweisung, Wiederverwendung und Optimierung automatisch. Das Team berichtet in einigen Fällen von Einsparungen beim GPU-Speicher von mindestens 40 %. Benutzerdefinierte Rendering-Pipelines lassen sich visuell über den Node Render Graph Editor oder programmatisch über das Klassen-Framework zusammenstellen.

Weitere Neuerungen

Mit Animation Retargeting lassen sich Animationen von einem Charakterskelett auf ein anderes übertragen, selbst bei unterschiedlichen Knochenstrukturen und Namenskonventionen. Die Veröffentlichung umfasst außerdem einen neu entwickelten Inspektor, Large-World-Rendering zur Vermeidung von Gleitkomma-Ungenauigkeiten in großen Koordinatensystemen sowie Funktionen für Geodaten-Rendering.

Quellen