Skip to content

Blender 5.3 importiert und rendert Gaussian Splats nativ, kann sie aber noch nicht exportieren

Am 16. September hat Sergey Sharybin den Pull Request zusammengeführt, der Blender native Unterstützung für Gaussian Splats bringt. Blender 5.3 kann nun eine Splat-Aufnahme aus einer PLY- oder SPZ-Datei importieren, sie als Punktwolke eines neuen Typs speichern und in Workbench, EEVEE und Cycles rendern. Die Alpha-Phase läuft bis zum 30. September, die Veröffentlichung ist für den 10. November geplant. Bisher bedeuteten Splats in Blender entweder ein Add-on wie BlendSplat oder einen Trick mit Geometry Nodes, bei dem für jeden Punkt ein zur Kamera ausgerichtetes Viereck gezeichnet wurde und der bei mehr als einigen Millionen Punkten an seine Grenzen kam. Der Pull Request, die Versionshinweise zu 5.3.

Eine Gaussian-Splat-Aufnahme eines Tisches mit einem Stofftier und einer Pflanze, gerendert im Viewport von Blender 5.3

Eine Splat-Aufnahme im Viewport von Blender 5.3 aus den Versionshinweisen. Bild: Blender Foundation.

Was hinzugekommen ist

Das Konzept ist einfach und sollte bekannt sein, denn es bestimmt, was sich mit einem Splat in der Szene anstellen lässt. Ein Splat ist eine Punktwolke. Der PointCloud-Datenblock erhält eine Type-Option mit zwei Werten, Points und 3D Gaussian Splats. Der zweite Typ enthält zusätzliche Attribute pro Punkt: scale als Vektor, rotation als Quaternion, radiance:base für Grundfarbe und Deckkraft sowie eine radiance:sh_N-Reihe für die höheren Bänder der Kugelflächenfunktionen, durch die ein Splat aus unterschiedlichen Blickwinkeln verschieden aussieht. Da es sich um eine Punktwolke handelt, können Geometry Nodes all diese Daten lesen und schreiben.

Der Import unterstützt PLY, wobei der Importer anhand der gefundenen Attribute erkennt, ob es sich um einen Splat handelt, sowie alle SPZ-Versionen bis einschließlich Version 4. Das Koordinatensystem von SPZ-Dateien wird beim Import in Blenders Ausrichtungskonvention für oben und vorn umgewandelt. Die Versionshinweise weisen allerdings darauf hin, dass nicht jedes Werkzeug SPZ-Dateien spezifikationskonform schreibt, sodass möglicherweise eine Drehung erforderlich ist. Für Geometry Nodes gibt es einen neuen Set Point Cloud Type-Node und einen neuen Import SPZ-Node. Der Import PLY-Node gibt nun eine Punktwolke aus, wenn er einen Splat erkennt, andernfalls ein Mesh. Auch der USD-Import unterstützt jetzt das von OpenUSD standardisierte Schema für Gaussian Splats.

Das Rendering funktioniert in allen drei Engines. Standardmäßig wird ein Splat über einen Emissions-Shader gerendert, der von seinem radiance-Attribut gesteuert wird. Dieses Material muss nicht selbst erstellt werden. Es lässt sich jedoch ersetzen, und genau das eröffnet kreative Möglichkeiten. Wird das Attribut stattdessen mit einem Diffuse BSDF verbunden, reagiert die Aufnahme auf die Lichter in der Szene.

Node-Editor von Blender 5.3, in dem über einer von einem Szenenlicht beleuchteten Splat-Aufnahme ein radiance-Attribut mit einem Diffuse BSDF verbunden ist

Neue Beleuchtung für eine Aufnahme: Das radiance-Attribut speist einen Diffuse BSDF, sodass das Licht einer Szene auf einen gescannten Tisch fällt. Bild: Blender Foundation.

Was noch fehlt

Es gibt keinen Export. Ein Splat gelangt in Blender hinein und bleibt dort oder wird als Pixelbild gerendert. Die Versionshinweise sagen das ausdrücklich und dokumentieren auch die übrigen aktuellen Einschränkungen: Die Leistung entspricht noch nicht den Zielen des Teams, die Pipeline setzt sRGB voraus, weshalb ein Splat mit geringer Deckkraft und hoher Strahlungsintensität in Cycles und EEVEE fehlerhaft gerendert werden kann. Außerdem aktualisiert Apply Transform noch nicht die Attribute für Skalierung, Drehung oder Kugelflächenfunktionen. Wird eine Transformation auf einen Splat angewendet, werden dessen Daten daher beschädigt. Die Design-Aufgabe formulierte als Ziel, zehn Millionen Punkte problemlos zu verarbeiten und sich anschließend in Richtung hundert Millionen vorzuarbeiten. Die Versionshinweise räumen offen ein, dass 5.3 lediglich der erste Schritt auf diesem Weg und nicht das Endziel ist.

Die Design-Aufgabe zeigt auch, wohin die Entwicklung führen soll. Der Punktwolkentyp für Splats wird künftig beeinflussen, wie Transformationen und Rigging auf dem Objekt funktionieren. Damit setzt erstmals ein weitverbreitetes Werkzeug das „Riggen eines Splats“ auf seine Roadmap. Auch die Formatwahl passt zu den Standardisierungsarbeiten an anderer Stelle: Niantics SPZ, die glTF-Erweiterung KHR_gaussian_splatting von Khronos und das OpenUSD-Schema. Design-Aufgabe #159470.

Warum das für uns relevant ist

Splats haben sich innerhalb von etwa achtzehn Monaten von einer Forschungsdemo zu einem Format mit eigener Werkzeugkette entwickelt, und in diesem Monat hat sich der Kreis geschlossen. SuperSplat 3.0 bearbeitet sie mit WebGPU im Browser. PlayCanvas und Babylon.js rendern sie in einer Engine. Jetzt lädt Blender sie in dieselbe Szene wie Meshes und beleuchtet sie. Was fehlt, ist der Weg aus Blender heraus. Für ein Webspiel führt der praktische Ablauf weiterhin von der Aufnahme über SuperSplat zur Engine, während Blender eher für Rendering und Look-Entwicklung als als eigentlicher Pipeline-Schritt dient.

Für Kreative, die unser Blender-Add-on verwenden, liegt der unmittelbare Nutzen in der Szenenausstattung. Scannt einen Raum oder ein Requisit, platziert die Aufnahme in der Szene, beleuchtet sie mit euren eigenen Lichtern und rendert Standbilder und Turntables vor einem realistischen Hintergrund. Diese Aufnahme in ein spielbares Spiel zu integrieren, ist ein anderes Problem. Der aktuelle Stand lässt sich nüchtern so zusammenfassen: Ein Splat ist Kulisse. Man kann daran vorbeigehen, aber nicht damit kollidieren oder es riggen. Dass Blender Rigging auf seine Roadmap setzt, ist das erste Anzeichen dafür, dass sich der letzte Punkt ändern könnte.

Wenn ihr Blender allgemein für Spiele verwendet, erklärt unser Leitfaden Blender 5 für Game Artists, was sich in der 5.x-Reihe geändert hat. Der Add-on-Leitfaden zeigt, wofür weiterhin ein Add-on erforderlich ist und wofür nicht.

Quellen