Renderu.com
10.2 KPostagens
68.3 KSeguidores
34.3 MVisitas
Alex Rowan

Editor de gaussian splats SuperSplat 3.0 reescrito em WebGPU e com quase 15 vezes menos memória em repouso

Macio

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.

Редактор гауссовых сплатов SuperSplat 3.0 переписан на WebGPU и в простое требует почти в 15 раз меньше памяти
Scan de um jardim botânico no SuperSplat Editor 3.0. Imagem: PlayCanvas

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
147
Mais sobre o tema:
Keynote do Houdini 22 no YouTube: assistente de IA para APEX Script ainda em preview
O Blender 5.3 vai importar e renderizar splats gaussianos sem add-ons de terceiros
V-Ray 7.4 leva a qualidade final de render diretamente para o viewport de Maya e Houdini, e para Blender surge uma edição gratuita
World Labs apresenta o Atlas: o modelo controla a câmara no vídeo e devolve a cena com geometria 3D explícita
Comentários17
data da postagem Todos os idiomas Apenas inglês