Skip to content

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 gaussianos de uma mesa com um bicho de pelúcia e uma planta, renderizada na viewport do Blender 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.

Editor de nós do Blender 5.3 com um atributo radiance conectado a um Diffuse BSDF acima de uma captura de splats iluminada por uma luz da 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 ​