Blender 5.3 importa e renderiza splats gaussianos nativamente, mas ainda não consegue exportá-los
Em 16 de setembro, Sergey Sharybin incorporou o pull request que dá ao Blender suporte nativo a splats gaussianos. Agora, o Blender 5.3 pode importar uma captura de splats de um arquivo PLY ou SPZ, armazená-la como uma nuvem de pontos com um novo tipo e renderizá-la no Workbench, EEVEE e Cycles. A fase alfa vai até 30 de setembro, e o lançamento está previsto para 10 de novembro. Até agora, usar splats no Blender exigia um complemento como o BlendSplat ou um truque com nós de geometria que desenhava um quad voltado para a câmera por ponto e deixava de funcionar bem ao ultrapassar alguns milhões deles. O pull request, as notas de lançamento da versão 5.3.

Uma captura de splats na viewport do Blender 5.3, extraída das notas de lançamento. Imagem: Blender Foundation.
O que foi incorporado
O design é simples e vale a pena conhecê-lo, pois ele determina o que você pode fazer com um splat depois de colocá-lo na cena. Um splat é uma nuvem de pontos. O bloco de dados PointCloud recebe uma opção Type com dois valores, Points e 3D Gaussian Splats, e o segundo armazena atributos extras por ponto: scale como vetor, rotation como quaternion, radiance:base contendo a cor-base e a opacidade e uma série radiance:sh_N para as bandas de harmônicos esféricos de ordem superior, que fazem um splat parecer diferente conforme o ângulo de visão. Por ser uma nuvem de pontos, os nós de geometria podem ler e modificar tudo isso.
A importação abrange PLY, no qual o importador identifica um splat pelos atributos encontrados, e todas as versões do SPZ até a 4. Durante a importação, os arquivos SPZ têm seu sistema de coordenadas convertido para a convenção de eixos vertical e frontal do Blender, com a ressalva, mencionada nas notas, de que nem todas as ferramentas gravam SPZ conforme a especificação e, portanto, talvez seja necessário aplicar uma rotação. No lado dos nós de geometria, há um novo nó Set Point Cloud Type, um novo nó Import SPZ, e o nó Import PLY agora gera uma nuvem de pontos quando detecta um splat e uma malha nos demais casos. A importação de USD também passa a reconhecer o esquema de splats gaussianos padronizado pelo OpenUSD.
A renderização funciona nos três motores. Por padrão, um splat é renderizado por meio de um shader emissivo controlado por seu atributo radiance, e você não precisa criar esse material por conta própria. No entanto, é possível substituí-lo, e é aí que surgem as possibilidades criativas. Conecte o atributo a um Diffuse BSDF, por exemplo, e a captura passará a reagir às luzes da sua cena.

Reiluminando uma captura: o atributo radiance alimenta um Diffuse BSDF, fazendo com que uma luz da cena ilumine uma mesa escaneada. Imagem: Blender Foundation.
O que ficou de fora
Não há exportação. Um splat entra no Blender e permanece nele, ou é renderizado em pixels. As notas de lançamento dizem isso claramente e também documentam as demais limitações atuais: o desempenho ainda não está no nível desejado pela equipe, o pipeline pressupõe sRGB, portanto um splat com baixa opacidade e alta radiância pode ser renderizado incorretamente no Cycles e no EEVEE, e Apply Transform ainda não atualiza os atributos de escala, rotação ou harmônicos esféricos, de modo que incorporar uma transformação a um splat o corrompe. A tarefa de design estabeleceu a meta de trabalhar confortavelmente com dez milhões de pontos e, depois, avançar em direção aos cem milhões. As notas reconhecem que a versão 5.3 é o primeiro passo nessa trajetória, não o destino final.
A tarefa de design também indica os próximos passos. No futuro, o tipo de nuvem de pontos de splats mudará o comportamento das transformações e do rigging no objeto, marcando a primeira vez que vemos uma ferramenta amplamente adotada incluir “fazer rig de um splat” em seu roadmap. Além disso, as escolhas de formatos acompanham o trabalho de padronização que está acontecendo em outros lugares: o SPZ da Niantic, a extensão glTF KHR_gaussian_splatting do Khronos e o esquema OpenUSD. Tarefa de design nº 159470.
Por que isso nos afeta
Em cerca de dezoito meses, os splats passaram de uma demonstração de pesquisa para um formato com uma cadeia de ferramentas, e este mês fechou o ciclo. O SuperSplat 3.0 permite editá-los em um navegador com WebGPU. O PlayCanvas e o Babylon.js os renderizam em um motor. Agora, o Blender os carrega na mesma cena que suas malhas e os ilumina. O que falta é uma saída do Blender, e a rota prática para levá-los a um jogo web ainda é captura, SuperSplat e motor, com o Blender sendo usado para renderização e desenvolvimento visual, não como uma etapa do pipeline.
Para os criadores que usam nosso complemento para Blender, o uso imediato é a composição de cenários. Escaneie uma sala ou um objeto de cena, coloque-o na cena, ilumine-o com suas próprias luzes e renderize imagens estáticas e turntables com algo real ao fundo. Levar essa captura para um jogo interativo é um problema diferente, e a realidade atual é que um splat funciona como cenário: você pode passar por ele, mas não pode colidir com ele nem criar um rig para ele. A inclusão de rigging no roadmap do Blender é o primeiro sinal de que essa última parte pode mudar.
Se você usa o Blender para produção de jogos em geral, nosso guia Blender 5 para artistas de jogos explica o que mudou na série 5.x, e o guia de complementos mostra o que ainda exige um complemento e o que não exige.
Referências
- Blender: PR nº 163102, integração de splats gaussianos para entrada, saída e renderização
- Blender: notas de lançamento da versão 5.3, Renderização, Splats Gaussianos 3D
- Blender: tarefa de design nº 159470, integração de splats gaussianos
- Radiance Fields: Blender 5.3 terá importação e renderização nativas de splats gaussianos 3D
- 80.lv: Blender 5.3 receberá suporte nativo a splats gaussianos 3D