高斯泼溅编辑器 SuperSplat 3.0 用 WebGPU 重写,空闲时内存占用降至近十五分之一
PlayCanvas 发布了 SuperSplat Editor 3.0——这款在浏览器中运行的 3D 高斯泼溅编辑器已基于 WebGPU 从零重写。投影、视锥体剔除、打包、按深度排序以及为每个高斯发出绘制调用,现在都在每一帧由显卡完成,编辑器也不再在 JavaScript 中保存整个场景的 float 副本。
在一个包含 440 万泼溅(PLY 文件大小 990 MB)的测试场景中,空闲状态下的内存占用峰值从 1557 MB 降到 105 MB,渲染 1080p 视频时从 1673 MB 降到 142 MB,保存压缩 PLY 时从 2982 MB 降到 1759 MB。正是这样的节省,使得过去会耗尽标签页内存的场景可以在普通浏览器标签页中加载;配合新的渲染模式,还能处理数千万个高斯规模的场景。
与此同时,兼容性收窄了:第三版彻底删除了 WebGL2 渲染,随之消失的还有在 CPU 上做软件排序的 worker。没有 WebGPU,编辑器根本不会启动——界面的位置会显示一条提示,说明 WebGPU 不可用。
把计算搬到显卡上带来了什么
改动不止于渲染。直方图、按范围选择、取色、包围尺寸计算以及选择时的所有相交计算都改到了计算着色器中。一个典型例子是 Orient 工具:在 240 万高斯的场景里,过去点一下它会让界面卡住大约 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 的演示中,该模式展示在一处约 2000 万高斯的植物园扫描上。
在编辑工具中,最显眼的是新的球形笔刷(Shift+B):笔画的每个点都落在光标下方的深度处,半径按该深度换算成世界尺寸,遇到深度断裂时笔画会被打断——笔刷贴着扫描表面走,不会把它后面的东西一起选中。旧的“沿表面/穿透”开关被两个独立参数取代:Selection Depth 和 Selection Footprint;按高斯投影足迹进行的选择由 GPU 计算。alpha 为零的泼溅现在也可以被选中。
调色功能从通用设置移到了场景管理器中,并且作用于所选内容,而不再只针对整个场景。可调整色相、色温、饱和度、亮度、黑场与白场以及透明度,视口中提供实时预览,点击应用按钮即可将修改烘焙下来。现在可以直接在编辑器里对扫描的局部区域进行修正。
其他改动:
- 新增 Appearance 面板,可分别开关高斯、中心点和圆环,并调整圆环粗细、中心点大小和选择颜色;辅助叠加层默认关闭,按 Tab 可一次性全部隐藏;
- 弹出式叠加层面板:网格与平面、带尺寸的包围盒、相机位置、相机数据、帧时间;
- 重做的网格——XZ、XY 和 YZ 平面可独立开启,间距自适应,并为大型场景提供 100 米和 1000 米的参考线;
- Preferences 区块,包含语言、色调映射、球谐带数、飞行速度、视场角和设置重置;
- 从 JSON 和 COLMAP 批量导入相机位姿的速度提升,相机位于场景包围范围内时的正交渲染和深度拾取也已正确处理;
- 编辑器可以作为应用安装,并把自己注册为 .ply、.splat、.sog、.spz、.ksplat 和 .ssproj 文件的打开程序。
运行要求与从 2.x 的迁移
WebGPU 这一要求会挡住一部分用户:可用的有较新版本的 Chrome 和 Edge、26 及以上版本的 Safari,以及开启了 WebGPU 的 Firefox。对于不满足条件的用户,PlayCanvas 保留了第二个分支——最后一个版本 2.32.5 仍可在仓库中获取。项目文件也有一处需要注意:在 3.0 中保存的 .ssproj 文件只能在 3.0 及更高版本中打开,而第三版读取 2.x 的项目没有问题。首次启动时建议强制刷新页面——这会注销 2.x 遗留的旧 service worker 和离线缓存。
分发条件没有变化:SuperSplat Editor 免费,源代码以 MIT 许可开放,无需安装任何东西——直接在浏览器里通过 superspl.at 使用。
为什么偏偏在此时放弃 WebGL2
这一决定看上去是早有准备的。早在 6 月,PlayCanvas 就把泼溅查看器换成了使用计算着色器的 WebGPU 渲染器,编辑器紧随其后。到了这一步,同时维护两套图形后端大概已经不划算:CPU 排序和把场景保存在 JavaScript 中是最主要的限制,而并行保留 WebGL2 渲染路径就无法摆脱它们。
更大的趋势在于,高斯泼溅正在走出演示阶段。压缩和交换格式在不断发展——PlayCanvas 有自家的 SOG,编辑器同时还支持 SPZ——而对泼溅的支持正陆续出现在引擎、移动端采集应用和生产流程中。工具也在适应规模:如果数千万高斯的场景成为日常工作的常态,编辑器就不得不把它交给显卡来算。
在这一转变的背景下,浏览器端的 CG 工具很可能会按同样的剧本转向 WebGPU——先是查看器,然后是编辑器,再然后是放弃对 WebGL2 的兼容。对工作室而言,这意味着建模师和扫描人员的工作站要求会向更新的浏览器和驱动倾斜。
在 SuperSplat 3.0 中,你更看重哪一点?
- 内存占用大幅下降
- 转向 WebGPU
Стрэйт в точку.
Это же универсальный международный термин, зачем это переводить? А читателю потом гадай что имелось ввиду, ведь в каждом месте будет своя "лучшая" версия перевода. Вы сплайны как называете? А curve заменяете на изгиб? Ладно еще в какой научной работе, могу понять, но не в бытовом использовании.
Но path tracing и ray tracing зачем-то же перевели?!
Чё прям уже универсальный? И даже международный? :)
Прям в каждом своя?
кривые..
кривые
"Дорогая можно мне полином из огурцов"
Хех... Графика с математикой это, ёп, быт... Аще! :)
Ну как бы Gaussian вполне себе международный, да.
Сплайн - это не "кривая". Раз уж хотите умствованиями заниматься, то подыщите более верный термин:)
И серьезно, вы реально считаете что такие переводы уместны? Вы когда-нибудь пробовали перевести интерфейс софта на русский и не умереть от попыток понять что и где находится? Следовать урокам, например? Как тут уже заметили, удачи с поиском диффузных эллипсоидов!
Вы хоть бы, я не знаю, посмотрели значение слова "международный" что-ли..
Опа, новость. А что же это? Просветите..
Уместно знать русский язык до конца. И неуместно, забыв школу, заниматься демагогией и пачкотнёй всех смыслов.
И да, неплохо бы уже напрячься и заняться переводом.
Критическая масса дремучей необразованности в сети уже свербит глаза. Вот прямое следствие этих "Математика мне не пригодится", "Учителя виноваты, козлы", "Нахрен мне ваш синус", "Институт говно ничего не даст". И ведь ещё спорят без тени сомнений и используют свои писякносу приёмчики. С диффузными эллипсоидами товарищ как раз показал это, выпендрился на нищих знаниях, браво.
А помимо простых научных терминов, есть ещё такая дисциплина как герменевтика. Там вообще караул.
Этимология слова "splat" проста как срака мамонта. Это орфографическое описание звука удара о обычно что-то жидкое или плоское. Русское "шлёп".
Клякса, шлепок, капля, частица, молекула, снежок, облачко, кисточка, шарик. Да, бляха муха, "блямба" гораздо привычнее и понятнее чем сплат.
Хотите читать "сплаты" и потом это рассказывать? Удачи с мозолью на языке, обьясняя на каждое "чё?!", коих неизменно будет сразу сотни, значение этой мутировавшей байды.
Вы, наверняка, знаете все +/- 500 тысяч слов, все правила правописания и грамматики, коих насчитывается около 400?
Ну и чего же вы ждете? Напрягайтесь и занимайтесь! Или кто-то другой должен это делать?
Не поймите меня неправильно, я всецело за образование и "дремучесть" тоже меня не радует, но нужно быть реалистом. Никакая "блямба" не сможет заменить технические термины, которые у всех на слуху. Если термин пришел "извне", то и приживается он в таком виде - это нормальная практика и далеко не только в русскоязычной сфере.
П.С. Писать имя John как Джон в вашем прозвище - это, следуя вашей же логике, дремучая необразованность! Нужно Иван:)
Сорри за флуд:)
Почему вы вместо "Этимология" не написали "Истинное Значение"? ))
В общем понятно. Взывать к рассудку бесполезно.. Хех.. Splat - технический термин. Ну обалдеть..
Мде. И тут опростоволосился. Напачкал мимо. Даже съязвить знаний не хватило.
Имена собственные не переводятся.
Вера Львовна Медведева - Faith Lion's Daughter of Bears - следюя вясей зе лёгике..
Ну наверно потому что это не "Истинное Значение", а раздел лингвистики, изучающий происхождение слова и это действительно научный термин имеющий перевод.
Ну давайте, спросите меня, почему же я написал этимология вместо "происхождение слова"...
А потом спросите меня, почему же учёные говорят "ашдвао", но отчего-то "функция".
Давайте, уводите в сторону от сути.
Не случайно ли ученые решили использовать греческий и латынь, а не переводить на свои языки?
Так же и с IT - начиная с кода и заканчивая терминологией людям удобнее не переводить. Но некоторые упираются ))
"Хартия переводчиков гласит, что перевод в современном мире должен служить сближению народов. А вы своим лепетом... только разобщаете" @Бузыкин.