Editor de gaussian splats SuperSplat 3.0 reescrito em WebGPU e com quase 15 vezes menos memória em repouso
A PlayCanvas lançou o SuperSplat Editor 3.0 — o editor de gaussian splats 3D para navegador foi reescrito de raiz em WebGPU. A projeção, o recorte pelo frustum de visão, o empacotamento, a ordenação por profundidade e a emissão das chamadas de desenho para cada gaussiana passam agora pela placa gráfica em cada fotograma, e o editor deixou de guardar em JavaScript cópias completas da cena em formato float.
Numa cena de teste com 4,4 milhões de splats (um PLY de 990 MB), o consumo máximo de memória em repouso caiu de 1557 MB para 105 MB; na renderização de vídeo 1080p, de 1673 MB para 142 MB; e ao guardar um PLY comprimido, de 2982 MB para 1759 MB. É esta poupança que permite carregar num separador normal do navegador cenas que antes esgotavam a memória deste e, em conjunto com o novo modo de renderização, trabalhar com cenas de dezenas de milhões de gaussianas.
Em contrapartida, a compatibilidade estreitou-se: a renderização em WebGL2 foi totalmente removida na terceira versão e com ela desapareceu também o worker de ordenação por software no CPU. Sem WebGPU o editor não arranca — em vez da interface mostra uma mensagem a informar que o WebGPU não está disponível.
O que traz a passagem dos cálculos para a placa gráfica
As alterações não se ficam pela renderização. Os histogramas, a seleção por intervalo, a escolha de cor, o cálculo das dimensões e todas as passagens de interseção usadas na seleção foram passados para shaders de computação. Um exemplo elucidativo é a ferramenta Orient: numa cena com 2,4 milhões de gaussianas, clicar nela bloqueava antes a interface durante cerca de 8,5 segundos e agora resolve-se em menos de 25 ms.
A exportação foi refeita segundo um esquema de streaming: o ficheiro é montado aos pedaços através do splat-transform e não por inteiro na memória RAM. Isto aplica-se ao PLY, ao PLY comprimido, ao SOG, ao SPZ, ao ficheiro de projeto .ssproj e à publicação na galeria. A compilação assenta no PlayCanvas Engine 2.22.0 e no splat-transform 3.3.3.
À interface foi acrescentado o diagnóstico Frame Timings: desenha um gráfico do tempo de fotograma no GPU com o mínimo, a mediana e o percentil 95 do último segundo. Para quem prepara splats para um hardware-alvo concreto, é uma forma de ver as quebras sem sair do editor.
Pincel esférico e modo de renderização sem ordenação
A principal novidade na renderização é o modo Stochastic Alpha. As gaussianas são desenhadas opacas, com teste de profundidade e cobertura por píxel, ou seja, sem ordenação por profundidade; quando a câmara para, o editor desenha por cima um fotograma totalmente ordenado com mistura. Nas definições existem as opções «desligado», «ligado», «apenas em movimento» e «automático» — esta última está ativa por predefinição e passa para o modo estocástico apenas se o fotograma ordenado se revelar lento na placa gráfica em causa, voltando à ordenação quando a vista fica mais leve. Na demonstração da PlayCanvas o modo é mostrado num scan de um jardim botânico com cerca de 20 milhões de gaussianas.
Entre as ferramentas de edição, a mais notória é o novo pincel esférico (Shift+B): cada ponto do traço é colocado à profundidade que está sob o cursor, o raio é convertido para o tamanho no mundo a essa profundidade e, nas descontinuidades de profundidade, o traço é interrompido — o pincel segue a superfície do scan e não apanha o que está por trás dela. O antigo comutador «pela superfície / atravessando» foi substituído por dois parâmetros separados, Selection Depth e Selection Footprint; a seleção pela marca da gaussiana é calculada no GPU. Os splats com alfa zero também passam a ser selecionáveis.
A correção de cor mudou das definições gerais para o gestor de cena e aplica-se à seleção, e não apenas a toda a cena. Estão disponíveis matiz, temperatura, saturação, brilho, pontos de preto e de branco e transparência — com pré-visualização em direto na viewport e um botão de aplicar que fixa a alteração. Corrigir localmente uma zona do scan passa a ser possível diretamente no editor.
Outras alterações:
- painel Appearance com interruptores separados para gaussianas, centros e anéis, espessura dos anéis, tamanho dos centros e definição da cor de seleção; as sobreposições auxiliares estão desligadas por predefinição e escondem-se todas de uma vez com Tab;
- painel flutuante de sobreposições: grelha e planos, caixa envolvente com dimensões, posições das câmaras, dados da câmara, tempos de fotograma;
- grelha reformulada — os planos XZ, XY e YZ ligam-se de forma independente, o passo é adaptativo, com linhas aos 100 e aos 1000 metros para cenas grandes;
- secção Preferences com idioma, mapeamento tonal, número de bandas de harmónicos esféricos, velocidade de voo, ângulo de visão e reposição das definições;
- importação em lote acelerada de poses de câmara a partir de JSON e COLMAP, renderização ortográfica correta e picking por profundidade quando a câmara está dentro dos limites da cena;
- o editor instala-se como aplicação e regista-se como gestor dos ficheiros .ply, .splat, .sog, .spz, .ksplat e .ssproj.
Requisitos e passagem da versão 2.x
O requisito de WebGPU deixa de fora parte dos utilizadores: funcionam as versões atuais do Chrome e do Edge, o Safari na versão 26 ou superior e ainda o Firefox com o WebGPU ativado. Para quem isto não sirva, a PlayCanvas manteve o segundo ramo — a última versão, a 2.32.5, continua disponível no repositório. Há também um pormenor quanto aos projetos: os ficheiros .ssproj guardados na 3.0 só abrem na 3.0 e posteriores, ao passo que a terceira versão lê sem problemas os projetos da 2.x. No primeiro arranque recomenda-se recarregar a página de forma forçada — o antigo service worker e a cache offline da versão 2.x são desregistados.
As condições de distribuição não mudaram: o SuperSplat Editor é gratuito, o código-fonte é aberto sob licença MIT e não é preciso instalar nada — trabalha-se em superspl.at diretamente no navegador.
Porquê abandonar o WebGL2 precisamente agora
A decisão parece preparada de antemão. Já em junho a PlayCanvas tinha passado o visualizador de splats para um renderizador WebGPU com shaders de computação, e o editor seguia atrás. Nesta fase, suportar dois backends gráficos deixou provavelmente de compensar: a ordenação no CPU e a manutenção da cena em JavaScript eram a principal limitação, e o caminho paralelo de renderização em WebGL2 não permitia livrar-se delas.
A tendência mais geral é que os gaussian splats estão a sair da fase das demonstrações. Os formatos de compressão e de troca estão a evoluir — na PlayCanvas é o SOG, próprio da empresa, e a par dele o editor suporta SPZ — e o suporte a splats vai aparecendo em motores, aplicações móveis de captura e pipelines de produção. As ferramentas adaptam-se à escala: se uma cena com dezenas de milhões de gaussianas se tornar a norma de trabalho, o editor é obrigado a calculá-la na placa gráfica.
Com esta transição em pano de fundo, é provável que as ferramentas de CG no navegador avancem para o WebGPU pelo mesmo guião — primeiro o visualizador, depois o editor, depois o abandono da compatibilidade com o WebGL2. Para os estúdios, isso significa deslocar os requisitos das estações de trabalho de modeladores e especialistas de digitalização no sentido de navegadores e controladores recentes.
O que é mais importante para si no SuperSplat 3.0?
- A queda do consumo de memória
- A passagem para o WebGPU
Стрэйт в точку.
Это же универсальный международный термин, зачем это переводить? А читателю потом гадай что имелось ввиду, ведь в каждом месте будет своя "лучшая" версия перевода. Вы сплайны как называете? А curve заменяете на изгиб? Ладно еще в какой научной работе, могу понять, но не в бытовом использовании.
Но path tracing и ray tracing зачем-то же перевели?!
Чё прям уже универсальный? И даже международный? :)
Прям в каждом своя?
кривые..
кривые
"Дорогая можно мне полином из огурцов"
Хех... Графика с математикой это, ёп, быт... Аще! :)
Ну как бы Gaussian вполне себе международный, да.
Сплайн - это не "кривая". Раз уж хотите умствованиями заниматься, то подыщите более верный термин:)
И серьезно, вы реально считаете что такие переводы уместны? Вы когда-нибудь пробовали перевести интерфейс софта на русский и не умереть от попыток понять что и где находится? Следовать урокам, например? Как тут уже заметили, удачи с поиском диффузных эллипсоидов!
Вы хоть бы, я не знаю, посмотрели значение слова "международный" что-ли..
Опа, новость. А что же это? Просветите..
Уместно знать русский язык до конца. И неуместно, забыв школу, заниматься демагогией и пачкотнёй всех смыслов.
И да, неплохо бы уже напрячься и заняться переводом.
Критическая масса дремучей необразованности в сети уже свербит глаза. Вот прямое следствие этих "Математика мне не пригодится", "Учителя виноваты, козлы", "Нахрен мне ваш синус", "Институт говно ничего не даст". И ведь ещё спорят без тени сомнений и используют свои писякносу приёмчики. С диффузными эллипсоидами товарищ как раз показал это, выпендрился на нищих знаниях, браво.
А помимо простых научных терминов, есть ещё такая дисциплина как герменевтика. Там вообще караул.
Этимология слова "splat" проста как срака мамонта. Это орфографическое описание звука удара о обычно что-то жидкое или плоское. Русское "шлёп".
Клякса, шлепок, капля, частица, молекула, снежок, облачко, кисточка, шарик. Да, бляха муха, "блямба" гораздо привычнее и понятнее чем сплат.
Хотите читать "сплаты" и потом это рассказывать? Удачи с мозолью на языке, обьясняя на каждое "чё?!", коих неизменно будет сразу сотни, значение этой мутировавшей байды.
Вы, наверняка, знаете все +/- 500 тысяч слов, все правила правописания и грамматики, коих насчитывается около 400?
Ну и чего же вы ждете? Напрягайтесь и занимайтесь! Или кто-то другой должен это делать?
Не поймите меня неправильно, я всецело за образование и "дремучесть" тоже меня не радует, но нужно быть реалистом. Никакая "блямба" не сможет заменить технические термины, которые у всех на слуху. Если термин пришел "извне", то и приживается он в таком виде - это нормальная практика и далеко не только в русскоязычной сфере.
П.С. Писать имя John как Джон в вашем прозвище - это, следуя вашей же логике, дремучая необразованность! Нужно Иван:)
Сорри за флуд:)
Почему вы вместо "Этимология" не написали "Истинное Значение"? ))
В общем понятно. Взывать к рассудку бесполезно.. Хех.. Splat - технический термин. Ну обалдеть..
Мде. И тут опростоволосился. Напачкал мимо. Даже съязвить знаний не хватило.
Имена собственные не переводятся.
Вера Львовна Медведева - Faith Lion's Daughter of Bears - следюя вясей зе лёгике..
Ну наверно потому что это не "Истинное Значение", а раздел лингвистики, изучающий происхождение слова и это действительно научный термин имеющий перевод.
Ну давайте, спросите меня, почему же я написал этимология вместо "происхождение слова"...
А потом спросите меня, почему же учёные говорят "ашдвао", но отчего-то "функция".
Давайте, уводите в сторону от сути.
Не случайно ли ученые решили использовать греческий и латынь, а не переводить на свои языки?
Так же и с IT - начиная с кода и заканчивая терминологией людям удобнее не переводить. Но некоторые упираются ))
"Хартия переводчиков гласит, что перевод в современном мире должен служить сближению народов. А вы своим лепетом... только разобщаете" @Бузыкин.