PlayCanvas v2.17: Gaussian Splatting de meia precisão no WebGPU
O PlayCanvas Engine v2.17.0 chegou com um conjunto direcionado de melhorias que impulsionam o Gaussian Splatting no WebGPU. A versão adiciona harmônicos esféricos de meia precisão, um pipeline de ordenação e descarte orientado por GPU e um orçamento global de splats para gerenciar o LOD de toda a cena.
Passo a passo do SuperSplat com Will Eastcott, CEO da PlayCanvas, sobre edição e otimização de Gaussian Splats
Harmônicos esféricos f16
A grande novidade técnica são os harmônicos esféricos de meia precisão (f16) para Gaussian Splatting executado no WebGPU. Os harmônicos esféricos codificam informações de cor dependentes do ângulo de visão para cada splat e são uma das estruturas de dados mais pesadas em um pipeline de splatting. A mudança de números de ponto flutuante de 32 bits para 16 bits reduz o uso de memória aproximadamente pela metade, com uma diferença visual mínima.
Isso funciona apenas no WebGPU porque o WebGL não oferece suporte nativo a buffers f16. É mais um exemplo de como o WebGPU permite otimizações que antes não eram viáveis.
Ordenação orientada por GPU e descarte de frustum
A v2.17.0 apresenta um pipeline de ordenação e descarte de frustum orientado por GPU para splats no WebGPU. Anteriormente, a ordenação dos splats acontecia na CPU, o que se tornava um gargalo em cenas com milhões de Gaussianas. Ao transferir essa tarefa para compute shaders, a GPU passa a realizar tanto a ordenação quanto o descarte sem precisar enviar os dados de volta à CPU.
A etapa de descarte de frustum elimina os splats fora do campo de visão da câmera antes que sejam ordenados, reduzindo ainda mais a carga de trabalho.
Orçamento global de splats
Um novo sistema de orçamento global de splats oferece gerenciamento de LOD para Gaussian Splats em toda a cena. Quando sua cena contém vários objetos de splat, agora é possível definir uma contagem total de splats para a cena inteira. O motor distribui automaticamente o orçamento entre os objetos com base na distância e na cobertura da tela.
Isso é útil para aplicações que combinam vários ambientes ou objetos digitalizados em uma única cena, como showrooms virtuais ou visitas arquitetônicas interativas.
Hospedagem própria de modelos de Gaussian Splatting com o visualizador da PlayCanvas
Color Enhance e atualizações de renderização
A versão adiciona um novo pós-efeito Color Enhance com controle de tons médios, além de shaders de bloom de meia precisão para melhorar o desempenho. Material.meshInstances passou de um Array para um Set, o que acelera as operações de remoção de instâncias. O pipeline de renderização também ganhou suporte à face frontal.
A v2.16.0 preparou o terreno
A versão anterior (v2.16.0, de 3 de fevereiro) adicionou suporte a Gaussian Splatting 2D (2DGS) e a subgrupos WGSL. O 2DGS usa discos planos em vez de elipsoides 3D, o que pode produzir reconstruções de superfícies mais nítidas para geometrias planas, como paredes e pisos. O suporte a subgrupos WGSL permite operações em nível de wave nos compute shaders, possibilitando reduções paralelas mais rápidas em GPUs compatíveis.
Juntas, as versões v2.16 e v2.17 representam um avanço significativo para tornar o PlayCanvas o motor de referência para Gaussian Splatting na web.