Редактор гауссовых сплатов SuperSplat 3.0 переписан на WebGPU и в простое требует почти в 15 раз меньше памяти
PlayCanvas выпустила SuperSplat Editor 3.0 — браузерный редактор 3D-гауссовых сплатов переписан с нуля на WebGPU. Проекция, отсечение по пирамиде видимости, упаковка, сортировка по глубине и выдача вызовов отрисовки для каждой гауссианы теперь выполняются на видеокарте в каждом кадре, а редактор перестал хранить в JavaScript полные копии сцены в формате float.
На тестовой сцене из 4,4 млн сплатов (PLY весом 990 МБ) пиковый расход памяти в простое упал с 1557 МБ до 105 МБ, при рендере видео 1080p — с 1673 МБ до 142 МБ, при сохранении сжатого PLY — с 2982 МБ до 1759 МБ. Эта экономия и позволяет загружать в обычной вкладке браузера сцены, которые раньше исчерпывали её память, а вместе с новым режимом отрисовки — работать со сценами на десятки миллионов гауссиан.
Совместимость при этом сузилась: рендер на WebGL2 из третьей версии удалён полностью, вместе с ним ушёл и воркер программной сортировки на CPU. Без WebGPU редактор не запустится — вместо интерфейса покажет сообщение о том, что WebGPU недоступен.
Что даёт перенос вычислений на видеокарту
Изменения затронули не только отрисовку. Гистограммы, выделение по диапазону, подбор цвета, расчёт габаритов и все проходы пересечения при выделении переведены в вычислительные шейдеры. Показательный пример — инструмент Orient: на сцене в 2,4 млн гауссиан клик по нему раньше вешал интерфейс примерно на 8,5 секунды, теперь отрабатывает меньше чем за 25 мс.
Экспорт переделали на потоковую схему: файл собирается по кускам через splat-transform, а не целиком в оперативной памяти. Это касается PLY, сжатого PLY, SOG, SPZ, проектного файла .ssproj и публикации в галерею. Сборка построена на PlayCanvas Engine 2.22.0 и splat-transform 3.3.3.
В интерфейс добавили диагностику Frame Timings: она рисует график времени кадра на GPU с минимумом, медианой и 95-м процентилем за последнюю секунду. Для тех, кто готовит сплаты под конкретное целевое железо, это способ увидеть просадки, не выходя из редактора.
Сферическая кисть и режим отрисовки без сортировки
Главное новшество в отрисовке — режим Stochastic Alpha. Гауссианы рисуются непрозрачными, с тестом глубины и попиксельным покрытием, то есть без сортировки по глубине; когда камера останавливается, редактор дорисовывает полностью отсортированный кадр со смешиванием. В настройках доступны варианты «выключено», «включено», «только при движении» и «авто» — последний стоит по умолчанию и переключается на стохастический режим, только если отсортированный кадр на конкретной видеокарте оказался медленным, а при облегчении вида возвращается к сортировке. В демонстрации PlayCanvas режим показан на скане ботанического сада примерно в 20 млн гауссиан.
Из инструментов редактирования заметнее всего новая сферическая кисть (Shift+B): каждая точка мазка кладётся по глубине под курсором, радиус пересчитывается в мировой размер на этой глубине, а на разрывах глубины штрих разбивается — кисть следует поверхности скана и не захватывает то, что находится за ней. Старый переключатель «по поверхности / насквозь» заменили двумя отдельными параметрами — Selection Depth и Selection Footprint; выделение по отпечатку гауссианы считается на GPU. Сплаты с нулевой альфой теперь тоже выделяются.
Цветокоррекция переехала из общих настроек в менеджер сцены и применяется к выделению, а не только ко всей сцене. Доступны оттенок, температура, насыщенность, яркость, точки чёрного и белого, прозрачность — с живым предпросмотром во вьюпорте и кнопкой применения, которая запекает правку. Локально поправить участок скана теперь можно прямо в редакторе.
Прочие изменения:
- панель Appearance с раздельными переключателями гауссиан, центров и колец, толщиной колец, размером центров и настройкой цвета выделения; служебные оверлеи по умолчанию выключены, все сразу скрываются по Tab;
- всплывающая панель оверлеев: сетка и плоскости, габаритный бокс с размерами, позиции камер, данные камеры, тайминги кадра;
- переработанная сетка — плоскости XZ, XY и YZ включаются независимо, шаг адаптивный, с линиями на 100 и 1000 метров для крупных сцен;
- раздел Preferences с языком, тональной компрессией, числом полос сферических гармоник, скоростью полёта, углом обзора и сбросом настроек;
- ускоренный пакетный импорт поз камер из JSON и COLMAP, корректный ортографический рендер и пикинг по глубине, когда камера внутри габаритов сцены;
- редактор ставится как приложение и регистрирует себя обработчиком файлов .ply, .splat, .sog, .spz, .ksplat и .ssproj.
Требования и переход с версии 2.x
Требование WebGPU отсекает часть пользователей: работают актуальные Chrome и Edge, Safari версии 26 и выше, а также Firefox с включённым WebGPU. Тем, кому это не подходит, PlayCanvas сохранила вторую ветку — последний релиз 2.32.5 остаётся доступен в репозитории. Есть и нюанс с проектами: файлы .ssproj, сохранённые в 3.0, открываются только в 3.0 и новее, тогда как проекты из 2.x третья версия читает без проблем. При первом запуске рекомендуется жёсткая перезагрузка страницы — старый сервис-воркер и офлайн-кеш из версии 2.x снимаются с регистрации.
Условия распространения не изменились: SuperSplat Editor бесплатен, исходники открыты под лицензией MIT, устанавливать ничего не нужно — работа идёт на superspl.at прямо в браузере.
Почему от WebGL2 отказались именно сейчас
Решение выглядит подготовленным заранее. Ещё в июне PlayCanvas перевела просмотрщик сплатов на рендерер WebGPU с вычислительными шейдерами, и редактор шёл следом. На этом этапе поддержка двух графических бэкендов, вероятно, перестала окупаться: сортировка на CPU и хранение сцены в JavaScript были главным ограничением, а параллельный путь отрисовки на WebGL2 не позволял от них избавиться.
Более общая тенденция здесь в том, что гауссовы сплаты выходят из стадии демонстраций. Развиваются форматы сжатия и обмена — у PlayCanvas это собственный SOG, рядом с ним редактор поддерживает SPZ, — а поддержка сплатов появляется в движках, мобильных приложениях захвата и производственных пайплайнах. Инструменты подстраиваются под масштаб: если сцена в десятки миллионов гауссиан становится рабочей нормой, редактор вынужден считать её на видеокарте.
На фоне этого перехода браузерные CG-инструменты, вероятно, будут двигаться к WebGPU по тому же сценарию — сначала просмотрщик, затем редактор, затем отказ от совместимости с WebGL2. Для студий это означает смещение требований к рабочим станциям моделлеров и специалистов по сканированию в сторону свежих браузеров и драйверов.
Что для вас важнее в SuperSplat 3.0?
- Падение расхода памяти
- Переход на WebGPU