Gaussian-Splat-Editor SuperSplat 3.0 auf WebGPU neu geschrieben und im Leerlauf mit fast 15-mal weniger Speicherbedarf
PlayCanvas hat SuperSplat Editor 3.0 veröffentlicht — der Browser-Editor für 3D-Gaussian-Splats wurde von Grund auf neu in WebGPU geschrieben. Projektion, Culling anhand des Sichtkegels, Packen, Sortierung nach Tiefe und das Absetzen der Draw Calls für jede Gaussian laufen jetzt in jedem Frame auf der Grafikkarte, und der Editor hält keine vollständigen Float-Kopien der Szene mehr in JavaScript.
In einer Testszene mit 4,4 Mio. Splats (eine PLY-Datei von 990 MB) sank der maximale Speicherbedarf im Leerlauf von 1557 MB auf 105 MB, beim Rendern eines 1080p-Videos von 1673 MB auf 142 MB und beim Speichern einer komprimierten PLY von 2982 MB auf 1759 MB. Genau diese Ersparnis erlaubt es, in einem gewöhnlichen Browser-Tab Szenen zu laden, die dessen Speicher zuvor erschöpft haben — und zusammen mit dem neuen Rendering-Modus mit Szenen aus Dutzenden Millionen Gaussians zu arbeiten.
Die Kompatibilität hat sich dadurch verengt: Das Rendering über WebGL2 wurde in der dritten Version vollständig entfernt, und mit ihm ist auch der Worker für die Software-Sortierung auf der CPU verschwunden. Ohne WebGPU startet der Editor nicht — statt der Oberfläche zeigt er eine Meldung, dass WebGPU nicht verfügbar ist.
Was die Verlagerung der Berechnungen auf die Grafikkarte bringt
Die Änderungen betreffen nicht nur das Rendering. Histogramme, die Auswahl nach Wertebereich, die Farbauswahl, die Berechnung der Abmessungen und alle Schnittdurchläufe bei der Auswahl wurden in Compute-Shader überführt. Ein anschauliches Beispiel ist das Werkzeug Orient: In einer Szene mit 2,4 Mio. Gaussians ließ ein Klick darauf die Oberfläche früher etwa 8,5 Sekunden lang hängen, jetzt ist er in weniger als 25 ms abgearbeitet.
Der Export wurde auf ein Streaming-Verfahren umgestellt: Die Datei wird über splat-transform stückweise zusammengesetzt und nicht komplett im Arbeitsspeicher. Das betrifft PLY, komprimiertes PLY, SOG, SPZ, die Projektdatei .ssproj und die Veröffentlichung in der Galerie. Der Build basiert auf PlayCanvas Engine 2.22.0 und splat-transform 3.3.3.
In die Oberfläche wurde die Diagnose Frame Timings aufgenommen: Sie zeichnet ein Diagramm der Frame-Zeit auf der GPU mit Minimum, Median und 95. Perzentil der letzten Sekunde. Für alle, die Splats für eine bestimmte Zielhardware vorbereiten, ist das eine Möglichkeit, Einbrüche zu sehen, ohne den Editor zu verlassen.
Sphärischer Pinsel und ein Rendering-Modus ohne Sortierung
Die wichtigste Neuerung beim Rendering ist der Modus Stochastic Alpha. Die Gaussians werden undurchsichtig gezeichnet, mit Tiefentest und pixelweiser Abdeckung, also ohne Sortierung nach Tiefe; sobald die Kamera anhält, zeichnet der Editor ein vollständig sortiertes Bild mit Blending nach. In den Einstellungen stehen die Varianten „aus“, „ein“, „nur bei Bewegung“ und „auto“ zur Verfügung — Letztere ist voreingestellt und schaltet nur dann in den stochastischen Modus, wenn sich das sortierte Bild auf der konkreten Grafikkarte als langsam erwiesen hat; wird die Ansicht leichter, kehrt sie zur Sortierung zurück. In der Demonstration von PlayCanvas wird der Modus an einem Scan eines botanischen Gartens mit rund 20 Mio. Gaussians gezeigt.
Bei den Bearbeitungswerkzeugen fällt vor allem der neue sphärische Pinsel (Shift+B) auf: Jeder Punkt des Strichs wird in der Tiefe unter dem Cursor abgelegt, der Radius wird in eine Weltgröße auf dieser Tiefe umgerechnet, und an Tiefensprüngen wird der Strich unterbrochen — der Pinsel folgt der Oberfläche des Scans und erfasst nicht, was dahinterliegt. Den alten Umschalter „an der Oberfläche / durchgehend“ haben zwei getrennte Parameter ersetzt: Selection Depth und Selection Footprint; die Auswahl anhand des Abdrucks einer Gaussian wird auf der GPU berechnet. Splats mit Alpha null lassen sich jetzt ebenfalls auswählen.
Die Farbkorrektur ist aus den allgemeinen Einstellungen in den Szenen-Manager umgezogen und wird auf die Auswahl angewendet, nicht nur auf die gesamte Szene. Verfügbar sind Farbton, Temperatur, Sättigung, Helligkeit, Schwarz- und Weißpunkt sowie Transparenz — mit Live-Vorschau im Viewport und einer Schaltfläche zum Anwenden, die die Bearbeitung einbrennt. Einen Ausschnitt des Scans lokal zu korrigieren, ist jetzt direkt im Editor möglich.
Weitere Änderungen:
- ein Appearance-Panel mit getrennten Schaltern für Gaussians, Zentren und Ringe, mit Ringdicke, Größe der Zentren und Einstellung der Auswahlfarbe; die Hilfs-Overlays sind standardmäßig ausgeschaltet und lassen sich alle auf einmal mit Tab ausblenden;
- ein aufklappbares Overlay-Panel: Gitter und Ebenen, Bounding Box mit Abmessungen, Kamerapositionen, Kameradaten, Frame-Timings;
- ein überarbeitetes Gitter — die Ebenen XZ, XY und YZ lassen sich unabhängig voneinander einschalten, die Schrittweite ist adaptiv, mit Linien bei 100 und 1000 Metern für große Szenen;
- ein Bereich Preferences mit Sprache, Tone Mapping, Anzahl der Bänder sphärischer Harmonischer, Fluggeschwindigkeit, Blickwinkel und Zurücksetzen der Einstellungen;
- beschleunigter Stapelimport von Kameraposen aus JSON und COLMAP, korrektes orthografisches Rendering und Tiefen-Picking, wenn sich die Kamera innerhalb der Szenengrenzen befindet;
- der Editor lässt sich als Anwendung installieren und registriert sich als Handler für die Dateien .ply, .splat, .sog, .spz, .ksplat und .ssproj.
Voraussetzungen und Umstieg von Version 2.x
Die WebGPU-Voraussetzung schließt einen Teil der Nutzer aus: Es funktionieren aktuelle Versionen von Chrome und Edge, Safari ab Version 26 sowie Firefox mit aktiviertem WebGPU. Wem das nicht passt, für den hat PlayCanvas den zweiten Zweig erhalten — das letzte Release 2.32.5 bleibt im Repository verfügbar. Es gibt auch eine Besonderheit bei Projekten: In 3.0 gespeicherte .ssproj-Dateien lassen sich nur in 3.0 und neuer öffnen, während die dritte Version Projekte aus 2.x problemlos liest. Beim ersten Start wird ein hartes Neuladen der Seite empfohlen — der alte Service Worker und der Offline-Cache aus Version 2.x werden dabei abgemeldet.
An den Vertriebsbedingungen hat sich nichts geändert: SuperSplat Editor ist kostenlos, der Quellcode ist unter der MIT-Lizenz offen, und installiert werden muss nichts — gearbeitet wird auf superspl.at direkt im Browser.
Warum man WebGL2 gerade jetzt aufgegeben hat
Die Entscheidung wirkt von langer Hand vorbereitet. Schon im Juni hatte PlayCanvas den Splat-Viewer auf einen WebGPU-Renderer mit Compute-Shadern umgestellt, und der Editor folgte. Zu diesem Zeitpunkt hat sich die Unterstützung zweier Grafik-Backends wahrscheinlich nicht mehr gelohnt: Die Sortierung auf der CPU und das Halten der Szene in JavaScript waren die wichtigste Einschränkung, und der parallele Rendering-Pfad über WebGL2 erlaubte es nicht, sie loszuwerden.
Der allgemeinere Trend dabei ist, dass Gaussian Splats das Stadium der Demonstrationen verlassen. Formate für Kompression und Austausch entwickeln sich weiter — bei PlayCanvas ist das das eigene SOG, daneben unterstützt der Editor SPZ —, und die Unterstützung für Splats hält in Engines, mobilen Capture-Apps und Produktionspipelines Einzug. Die Werkzeuge passen sich dem Maßstab an: Wenn eine Szene mit Dutzenden Millionen Gaussians zur Arbeitsnorm wird, muss der Editor sie zwangsläufig auf der Grafikkarte berechnen.
Vor dem Hintergrund dieses Übergangs werden sich Browser-CG-Werkzeuge vermutlich nach demselben Muster in Richtung WebGPU bewegen — zuerst der Viewer, dann der Editor, dann der Verzicht auf die Kompatibilität mit WebGL2. Für Studios bedeutet das eine Verschiebung der Anforderungen an die Arbeitsplätze von Modellierern und Scan-Spezialisten hin zu aktuellen Browsern und Treibern.
Was ist Ihnen bei SuperSplat 3.0 wichtiger?
- Der gesunkene Speicherbedarf
- Der Umstieg auf WebGPU
Стрэйт в точку.
Это же универсальный международный термин, зачем это переводить? А читателю потом гадай что имелось ввиду, ведь в каждом месте будет своя "лучшая" версия перевода. Вы сплайны как называете? А curve заменяете на изгиб? Ладно еще в какой научной работе, могу понять, но не в бытовом использовании.
Но path tracing и ray tracing зачем-то же перевели?!
Чё прям уже универсальный? И даже международный? :)
Прям в каждом своя?
кривые..
кривые
"Дорогая можно мне полином из огурцов"
Хех... Графика с математикой это, ёп, быт... Аще! :)
Ну как бы Gaussian вполне себе международный, да.
Сплайн - это не "кривая". Раз уж хотите умствованиями заниматься, то подыщите более верный термин:)
И серьезно, вы реально считаете что такие переводы уместны? Вы когда-нибудь пробовали перевести интерфейс софта на русский и не умереть от попыток понять что и где находится? Следовать урокам, например? Как тут уже заметили, удачи с поиском диффузных эллипсоидов!
Вы хоть бы, я не знаю, посмотрели значение слова "международный" что-ли..
Опа, новость. А что же это? Просветите..
Уместно знать русский язык до конца. И неуместно, забыв школу, заниматься демагогией и пачкотнёй всех смыслов.
И да, неплохо бы уже напрячься и заняться переводом.
Критическая масса дремучей необразованности в сети уже свербит глаза. Вот прямое следствие этих "Математика мне не пригодится", "Учителя виноваты, козлы", "Нахрен мне ваш синус", "Институт говно ничего не даст". И ведь ещё спорят без тени сомнений и используют свои писякносу приёмчики. С диффузными эллипсоидами товарищ как раз показал это, выпендрился на нищих знаниях, браво.
А помимо простых научных терминов, есть ещё такая дисциплина как герменевтика. Там вообще караул.
Этимология слова "splat" проста как срака мамонта. Это орфографическое описание звука удара о обычно что-то жидкое или плоское. Русское "шлёп".
Клякса, шлепок, капля, частица, молекула, снежок, облачко, кисточка, шарик. Да, бляха муха, "блямба" гораздо привычнее и понятнее чем сплат.
Хотите читать "сплаты" и потом это рассказывать? Удачи с мозолью на языке, обьясняя на каждое "чё?!", коих неизменно будет сразу сотни, значение этой мутировавшей байды.
Вы, наверняка, знаете все +/- 500 тысяч слов, все правила правописания и грамматики, коих насчитывается около 400?
Ну и чего же вы ждете? Напрягайтесь и занимайтесь! Или кто-то другой должен это делать?
Не поймите меня неправильно, я всецело за образование и "дремучесть" тоже меня не радует, но нужно быть реалистом. Никакая "блямба" не сможет заменить технические термины, которые у всех на слуху. Если термин пришел "извне", то и приживается он в таком виде - это нормальная практика и далеко не только в русскоязычной сфере.
П.С. Писать имя John как Джон в вашем прозвище - это, следуя вашей же логике, дремучая необразованность! Нужно Иван:)
Сорри за флуд:)
Почему вы вместо "Этимология" не написали "Истинное Значение"? ))
В общем понятно. Взывать к рассудку бесполезно.. Хех.. Splat - технический термин. Ну обалдеть..
Мде. И тут опростоволосился. Напачкал мимо. Даже съязвить знаний не хватило.
Имена собственные не переводятся.
Вера Львовна Медведева - Faith Lion's Daughter of Bears - следюя вясей зе лёгике..
Ну наверно потому что это не "Истинное Значение", а раздел лингвистики, изучающий происхождение слова и это действительно научный термин имеющий перевод.
Ну давайте, спросите меня, почему же я написал этимология вместо "происхождение слова"...
А потом спросите меня, почему же учёные говорят "ашдвао", но отчего-то "функция".
Давайте, уводите в сторону от сути.
Не случайно ли ученые решили использовать греческий и латынь, а не переводить на свои языки?
Так же и с IT - начиная с кода и заканчивая терминологией людям удобнее не переводить. Но некоторые упираются ))
"Хартия переводчиков гласит, что перевод в современном мире должен служить сближению народов. А вы своим лепетом... только разобщаете" @Бузыкин.