- Integra-se ao pipeline de renderização do THREE.js para exibir juntos objetos baseados em splat e mesh
- Tem excelente portabilidade e funciona em quase qualquer dispositivo (mais de 98% com suporte a WebGL2)
- Oferece desempenho de renderização rápido mesmo em dispositivos móveis de baixo desempenho
- Renderiza vários objetos splat ao mesmo tempo e também faz a ordenação corretamente
- Suporta a maioria dos principais formatos de arquivo splat, como .PLY (incluindo compactado), .SPZ, .SPLAT, .KSPLAT
- Suporta renderização simultânea a partir de vários pontos de vista
- Edição dinâmica: cada objeto splat pode ser transformado individualmente e receber animações
- Suporta edição de cores em tempo real, deslocamento e animação esquelética
- Com um sistema de shader graph, é possível gerar/editar splats dinamicamente na GPU
1 comentários
Opiniões no Hacker News
Parece uma demo extremamente impressionante, funciona bem até no meu iPhone antigo
Como desenvolvedor de jogos por hobby, sem muito conhecimento profissional de programação 3D, meu feedback seria que seria bom adicionar em algum lugar do GitHub ou do site uma explicação de uma linha sobre o que é “Gaussian Splatting”
Fiquei muito mais interessado e animado com as possibilidades depois de ler uma explicação de uma linha da Wikipedia
Gaussian Splatting é uma técnica de renderização volumétrica que renderiza dados volumétricos diretamente, sem convertê-los em superfícies ou primitivas de linha
É muito legal que isso permita criar nuvens, fogo, fumaça etc. de alta performance
Realmente preciso adicionar um FAQ
A demo de escaneamento de comida (exemplo de “Interactivity”) é impressionante
Em especial, olhar dentro dos buracos do pão no Mel's Steak Sandwich foi marcante
Mesmo com só gráficos integrados no meu notebook, o desempenho é excelente em relação ao nível de detalhe visível
Fico curioso sobre onde esse tipo de tecnologia está sendo usado hoje em dia
Existe uma comunidade que escaneia objetos pequenos com dispositivos portáteis ou drones
Nesta demo, o Tipatat forneceu os escaneamentos de comida
Eu também gosto dos escaneamentos de flores do kotohibi
https://superspl.at/user?id=kotohibi
Mesmo com esse nível de detalhe, o volume de dados transferidos não é tão grande
Dá algo em torno de 80 MB, o que é realmente surpreendente
Muito legal
O BabylonJS também tem bom suporte a Gaussian Splat
https://doc.babylonjs.com/features/featuresDeepDive/mesh/gaussianSplatting
O Aframe é um projeto mais recente e mais focado em jogos e VR
Tenho curiosidade de saber como alguém que já usou Babylon, Aframe, Three.js e PlayCanvas compararia essas opções
O PlayCanvas é comercial, mas parece o mais maduro, mais rico em recursos e com melhor desempenho
O Babylon é um engine 3D orientado a recursos, enquanto o Three.js fornece só o básico
O suporte a animação e texturas é bom, mas no fim você precisa montar seu próprio toolkit
Tenho curiosidade sobre experiências boas ou ruins com esses engines
A demo do OP é realmente sólida
Quais são as vantagens e a proposta do Aframe?
Como será o futuro do Gaussian Splatting, não só em visualização simples/digital twins, mas também em áreas criativas ou jogos, com edição e animação talvez se tornando possíveis em breve?
Aframe GitHub
PlayCanvas
Trabalho muito legal
Mas a combinação do meu notebook com GPU Nvidia RTX A3000 e Firefox tem desempenho muito ruim
Com essa quantidade de shader cores, dá até para esquentar a mão
Fico pensando se dá para sair correndo com o celular na mão e capturar Gaussian Splats de grama, arbustos e terra
Escolher um pedaço de chão de 1 metro quadrado, um espaço cúbico de 1 metro com um arbusto incluído
E então repetir blocos de grama e misturar arbustos ou terra entre eles para criar um mundo com “cara de Minecraft”
Para renderizar milhares de blocos, imagino que precisaria de um hardware bem parrudo
Seria muito legal ver isso na prática
Muito legal
Você tem alguma percepção sobre os gargalos de desempenho no estado atual?
Principalmente em cenas dinâmicas
O exemplo de simulação de partículas engasga, mas quando giro a câmera o desempenho de repente melhora bastante
Isso parece indicar que a parte do fundo estático era mais pesada do que eu imaginava, e à parte disso a pirâmide de Sierpinski é realmente impressionante de forma procedural
Talvez você simplesmente tenha virado a câmera para uma direção menos complexa
Ainda há trabalho a fazer para deixar o desempenho mais consistente
No futuro pretendo aplicar um sistema de LOD
Um link para o repo um pouco mais visível
https://github.com/sparkjsdev/spark
Ainda sou cético de que Gaussian Splatting consiga ir além de demos
Os arquivos são grandes demais
Por exemplo, o sanduíche de steak tem 12 MB
No SIGGRAPH do ano passado vi um clone do Matterport baseado em Gaussian Splats, e era preciso fazer streaming de 1,5 GB para ver um apartamento de dois quartos
É uma demo legal
A técnica de compressão SOGS é eficaz
Dá para armazenar 1M de Gaussianas em cerca de 14 MB, incluindo Spherical Harmonics completos
Há um bom post no blog da PlayCanvas sobre isso
https://blog.playcanvas.com/playcanvas-adopts-sogs-for-20x-3dgs-compression
Só para referência, o steak sandwich de 12 MB é o maior arquivo
Os outros ficam abaixo de 10 MB, e alguns entre 1 e 3 MB são bem convincentes
(por exemplo: Iberico Sandwich 1 MB, Clams and Caviar 1,8 MB etc.)
Esquemas avançados de compressão como SOGS devem chegar em breve
Este exemplo tem 30 MB
https://vincentwoo.com/3d/sutro_tower/
O principal motivo de os arquivos serem grandes é o armazenamento dos coeficientes de Spherical Harmonics
É um problema solucionável
Tenho a impressão de que o nome está sendo usado um pouco demais
Já existem Apache Spark, SPARK (Ada), sparklines, SPARQL etc.
https://en.wikipedia.org/wiki/SPARC