GuiaStefan VaskevichStefan Vaskevich

3D Gaussian Splats na Unreal Engine 5: gere mundos e objetos de graça

A stack local e gratuita de 3DGS para a Unreal Engine 5: o plugin que renderiza splats, a CLI que adiciona colisores e onde gerar mundos e objetos de graça.

Está acontecendo uma verdadeira revolução no 3D Gaussian Splatting agora mesmo. Só nos últimos meses recebemos uma onda de ferramentas locais e de código aberto que geram tanto objetos quanto mundos inteiros como splats - de graça, na sua própria GPU, sem rig de escaneamento e sem nuvem. E podemos finalmente jogar tudo isso direto na Unreal Engine 5, onde os splats realmente são renderizados sem destruir seu FPS.

Esta é a versão curta e cheia de links de toda a stack: o plugin que renderiza splats na UE5, a CLI que os converte e cria colisores, o editor no navegador para limpá-los e os lugares exatos onde você pode gerar mundos e objetos localmente e de graça. Todos os links estão na lista no final.

Novo no top3d.ai: compare splats, não apenas malhas
Acabamos de adicionar o 3D Gaussian Splatting à ferramenta Comparar - cerca de 10 splats para começar, entre objetos e mundos - para você poder girá-los lado a lado no navegador antes de colocar um no seu projeto. Experimente na página Comparar do 3DGS.

Assista ao processo completo

Todo o setup e os testes, do início ao fim, no YouTube.

Um carro esportivo cyberpunk neon gerado como um 3D Gaussian Splat, rodando dentro da Unreal Engine 5 com uma malha de colisão separada abaixo dele
Um carro em splat colocado na Unreal Engine 5 com o NanoGS - e uma malha de colisão separada (a bolha branca) para que você possa realmente dirigir ao redor dele. Todo esse pipeline é gratuito e local.

1. Renderize splats na Unreal Engine 5: os plugins

A Unreal Engine não suporta arquivos de splat (.ply, .sog) nativamente, então você precisa de um plugin. Existem vários pequenos e experimentais; testei os três mais populares e aqui está a análise sincera.

  • NanoGS - minha escolha no momento. Feito para versões recentes da Unreal (5.7), o mais fácil de instalar, mais estrelas, melhor documentação em inglês, suporte ativo. Só suporta .ply por enquanto (com sorte, SOG em breve).
  • MLSLabs Renderer - o único que também faz 4DGS (sequências de splats - captura animada/volumétrica). Vem nas versões Lite (apenas PLY) e Pro (adiciona o formato compactado SOG), mas a Pro é apenas para testes no momento e aplica uma marca d'água na viewport. Apesar de a página do GitHub dizer 5.5, as versões disponíveis no Google Drive incluem uma build 5.7.
  • XScene (XVerse) - um dos primeiros, mas só vai até a Unreal Engine 5.5, então deixo de lado para novos projetos na 5.7/5.8.
A página do GitHub do MLSLabs Gaussian Splatting Renderer mostrando suporte a 3DGS e 4DGS, licença Apache 2.0 e um splat de uma cena de templo
O MLSLabs é o que você deve escolher se quiser 4DGS. Para todo o resto, o NanoGS é a opção mais simples - coloque o plugin na pasta Plugins do seu projeto, reinicie, ative-o e importe qualquer .ply como um ator Gaussian Splat.
Instalação do NanoGS, em resumo
Baixe a versão correspondente (por exemplo, NanoGS UE5.7), crie uma pasta Plugins (com P maiúsculo) no seu projeto, descompacte o arquivo nela, reinicie a Unreal e ative o NanoGS em Plugins. Depois, clique em Import, importe qualquer arquivo .ply e arraste-o para a cena. O MLSLabs é mais pesado - ele é instalado na pasta da engine e baixa dependências do PyTorch na primeira execução.

2. Converta, adicione colisores e limpe splats

Os splats vêm em alguns formatos e a Unreal só aceita alguns deles, então você vai querer uma ferramenta para converter de um para o outro e, mais importante, para criar colisão - porque um splat bruto é apenas cor flutuando, não tem geometria para pisar ou colidir ao dirigir. Essa ferramenta é o splat-transform, a CLI da PlayCanvas. Se você tiver o Node.js instalado, é uma instalação de uma linha só (o ChatGPT escreve o comando exato para o seu arquivo), e ela tanto converte formatos quanto exporta uma malha de colisão como .glb.

# install (needs Node.js)
npm install -g @playcanvas/splat-transform

# convert a raw .ply into compressed SOG
splat-transform scan.ply scan.sog

# export a collision mesh (.glb) from a splat
splat-transform car.ply car-collider.glb

Traga esse .glb do colisor para a Unreal, alinhe-o com o splat, configure a colisão dele como Use Complex Collision As Simple, marque Actor Hidden In Game, e pronto: você tem um splat sobre o qual pode andar, dirigir ou cair. Funciona da mesma forma para objetos e para mundos inteiros.

Os formatos, em resumo
O .ply é o formato bruto e pesado de splat. O SOG é a versão altamente compactada (pense em um PLY de ~300 MB encolhendo para ~20 MB) e está rapidamente se tornando o novo padrão. O SPZ é outra opção compactada/feita para streaming. Converta entre eles com o splat-transform conforme as suas ferramentas exigirem.

Para realmente editar um splat - cortar o lixo, remover as partes de que você não precisa - a opção mais fácil é o SuperSplat, um editor gratuito que roda direto no seu navegador. Jogue um splat lá, selecione com o laço as partes que quer eliminar, delete, exporte. Você ainda não consegue fazer isso no Blender, então para limpeza ele é a melhor opção.

O editor de navegador SuperSplat com um splat de morango, partes selecionadas em amarelo prontas para serem deletadas
O SuperSplat roda no navegador - selecione splats soltos (em amarelo) e delete para limpar qualquer coisa que você gerar ou baixar antes de levar para a engine.

3. Onde gerar splats - mundos e objetos, de graça

Você pode pegar splats prontos em bibliotecas como a do SuperSplat (alguns são gratuitos para uso com atribuição de créditos), mas a parte divertida é gerar exatamente o que você precisa. Dois modelos abertos cobrem essas duas frentes, e você pode rodar ambos localmente ou usar seus sites gratuitos.

Mundos - Hunyuan World 2.0

O Hunyuan World 2.0 transforma uma única imagem de um local em um mundo 3D completo em formato de splat. Ele foi lançado sob uma licença Apache com todo o código e checkpoints (GitHub), então uma GPU potente (~24 GB de VRAM) consegue rodá-lo localmente, ou você pode apenas usar o site de graça. Uma única geração pode levar 20 minutos ou mais, porque ele também cria um colisor limpo para você - o que é um bônus muito bom. A alternativa paga é o Marble (World Labs), que também tem um plano gratuito e exporta GLB - mas o Hunyuan se saiu tão bem quanto, às vezes até melhor.

Um pátio medieval de pedra gerado no Hunyuan World 2.0 como um mundo 3D em formato de splat
Entra uma imagem, sai um mundo inteiro em splat. O Hunyuan gera um panorama, constrói a cena em splat ao redor dele e ainda entrega um colisor para você. Os mundos ainda são ancorados na câmera, então os artefatos aumentam quanto mais você se afasta do ponto inicial.

Objetos - TripoSplat

TripoSplat é a opção mais fácil para objetos: ele precisa de apenas ~8 GB de VRAM e tem suporte nativo na versão mais recente do ComfyUI - instale o ComfyUI, busque pelo template do TripoSplat, instale as dependências que faltarem, defina a saída como PLY e pronto. As gerações saem em cerca de um minuto (a demo do Hugging Face é ainda mais rápida se você não quiser ter trabalho com o ComfyUI). Jogue o resultado na Unreal e ele já vem bem otimizado, desde que você não passe para a casa dos milhões de gaussianas.

TripoSplat rodando no ComfyUI, gerando uma flor em vaso como um objeto 3D Gaussian Splat
TripoSplat no ComfyUI: entra imagem, sai objeto de splat em cerca de um minuto, com apenas 8 GB de VRAM. Controle a contagem de gaussianas para trocar qualidade por desempenho.

Desempenho: o que realmente se sustenta

Ambos os plugins prometem milhões de splats a 60 FPS e, em objetos e cenas organizadas, o resultado é realmente fluido. O limite real: acima de ~10 milhões de splats, o desempenho ainda fica limitado, porque a Unreal ainda não tem um formato de streaming para splats. Mantenha uma cena abaixo de ~1 milhão de splats no total e você geralmente não terá problemas.

Duas regras para manter um bom FPS
  • Controle a contagem de gaussianas na hora da geração. 32k splats podem ficar quase tão bons quanto 262k para um prop de cenário - e custam bem menos para renderizar.
  • Divida coisas grandes em partes; não crie um único objeto de splat gigante. O desenvolvedor do NanoGS recomenda isso porque um único splat imenso não vai sofrer culling (ficar oculto quando estiver fora da tela), então ele é muito mais pesado do que o mesmo conteúdo dividido em pedaços.
Um Content Browser na Unreal Engine cheio de objetos de splat gerados pelo TripoSplat - águas-vivas, cogumelos, flores, um carro cyberpunk
Uma biblioteca de objetos gerados com o TripoSplat, importados para a Unreal. Os splats são estáticos por si só, mas trazem um nível de detalhe fotorrealista que as malhas tradicionais não conseguem alcançar - e essa é a mágica para a ambientação de cenários.

Todos os links

Renderizar na Unreal Engine
Processar e editar
Gerar splats

Novas ferramentas de IA 3D que podem ser usadas nesse tipo de fluxo de trabalho surgem o tempo todo. Quando saem, vão direto para o 3DGS Compare e para a Arena, para que você possa testá-las antes de se decidir. Para mais fluxos de trabalho na engine, confira Claude Code + Unreal Engine 5 e o guia splats-go-playable.

Quer comparar essas ferramentas você mesmo?

3D Gaussian Splats na Unreal Engine 5: gere mundos e objetos de graça | Top 3D AI