- Se integra con el pipeline de renderizado de THREE.js para mostrar juntos objetos basados en splats y meshes
- Tiene una gran portabilidad y funciona en casi cualquier dispositivo (más del 98% con soporte para WebGL2)
- Ofrece renderizado rápido incluso en dispositivos móviles de gama baja
- Permite renderizar múltiples objetos splat al mismo tiempo y también ordenarlos correctamente
- Soporta la mayoría de los principales formatos de archivos splat, como .PLY (incluyendo compresión), .SPZ, .SPLAT y .KSPLAT
- Soporta renderizado simultáneo desde múltiples puntos de vista
- Edición dinámica: cada objeto splat puede transformarse individualmente y aplicársele animación
- Soporta edición de color en tiempo real, desplazamiento y animación esquelética
- Con un sistema de shader graph, se pueden generar/editar splats dinámicamente en la GPU
1 comentarios
Opiniones en Hacker News
Me dio la impresión de ser una demo sumamente impresionante, incluso funciona bien en mi iPhone viejo
Como desarrollador aficionado de juegos, sin mucho conocimiento profesional de programación 3D, mi retroalimentación sería que estaría bueno agregar en algún lugar de GitHub o del sitio web una explicación de una línea sobre qué es “Gaussian Splatting”
Una sola línea tomada de Wikipedia me hizo sentir mucho más interés y ver más posibilidades
Gaussian Splatting es una técnica de renderizado volumétrico que renderiza datos de volumen directamente sin convertirlos en superficies o primitivas de línea
Es realmente genial que permita crear nubes, fuego, humo y cosas así con alto rendimiento
Definitivamente tengo que agregar un FAQ
La demo de escaneo de comida (el ejemplo “Interactivity”) es sorprendente
En particular, fue impresionante poder mirar dentro de los agujeros del pan en el Mel's Steak Sandwich
Incluso en mi laptop con solo gráficos integrados, el rendimiento es excelente en relación con el nivel de detalle visible
Me da curiosidad saber en qué se está usando principalmente esta tecnología hoy en día
Existe una comunidad que escanea objetos pequeños con dispositivos handheld o drones
Tipatat aportó los escaneos de comida para esta demo
A mí también me gustan los escaneos de flores de kotohibi
https://superspl.at/user?id=kotohibi
Y aun con este nivel de detalle, la cantidad de datos transferidos no es tan grande
Son como 80MB, lo cual de verdad sorprende
Está realmente genial
BabylonJS también soporta muy bien Gaussian Splat
https://doc.babylonjs.com/features/featuresDeepDive/mesh/gaussianSplatting
Aframe es un proyecto más reciente y está más enfocado en juegos y VR
Me da curiosidad cómo los compararía alguien que haya usado Babylon, Aframe, Three.js y PlayCanvas
PlayCanvas es comercial, pero parece el más maduro, con más funciones y mejor rendimiento
Babylon es un motor 3D orientado a funciones, y Three.js ofrece lo básico
Tiene buen soporte para animación y texturas, pero al final terminas armando tu propio toolkit
Me interesa saber qué experiencias buenas o malas ha tenido la gente con estos motores
La demo del OP se ve realmente sólida
Me pregunto cuál sería la propuesta de valor y el pitch de Aframe
También me pregunto cómo se desarrollará el futuro de Gaussian Splatting, no solo en visualización simple o en la industria de digital twins, sino si pronto será posible editarlo y animarlo también en campos creativos o de juegos
Aframe GitHub
PlayCanvas
Muy buen trabajo
Pero el rendimiento es muy malo en la combinación de mi laptop con una GPU Nvidia RTX A3000 y Firefox
Con esa cantidad de shader cores, hasta podría calentarse al punto de quemar la mano
Me pregunto si se puede andar corriendo con el teléfono y capturar Gaussian Splats de pasto, arbustos y tierra
Elegir un parche de suelo cuadrado de 1 metro, o un espacio cúbico de 1 metro con un arbusto incluido
y luego repetir bloques de pasto e ir mezclando arbustos o tierra aquí y allá para crear un mundo con “sensación de Minecraft”
Supongo que para renderizar miles de bloques haría falta bastante hardware
Sería increíble verlo en la práctica
Está muy padre
Me pregunto si tienen alguna perspectiva sobre los cuellos de botella de rendimiento actuales
Sobre todo en escenas dinámicas
El ejemplo de simulación de partículas se traba, pero cuando giro la cámara de pronto el rendimiento mejora bastante
Eso parece significar que la parte del fondo estático era más pesada de lo que esperaba, y aparte de eso la pirámide de Sierpinski generada de forma procedural es realmente impresionante
Probablemente también sea porque giraste la cámara hacia una dirección menos compleja
Todavía queda trabajo por hacer para mantener el rendimiento estable
Más adelante planeo aplicar un sistema LOD
Un enlace al repo un poco más visible
https://github.com/sparkjsdev/spark
Sigo siendo escéptico sobre si Gaussian Splatting puede hacer algo más que ser una demo
El tamaño de los archivos es demasiado grande
Por ejemplo, el sándwich de steak pesa 12MB
El año pasado en SIGGRAPH vi un clon de Matterport basado en Gaussian Splats, y se necesitaban 1.5GB de streaming para ver un departamento de 2 habitaciones
Es una demo genial
La técnica de compresión SOGS es efectiva
Se pueden guardar 1M Gaussian con full Spherical Harmonics en alrededor de 14MB
Hay un muy buen post relacionado en el blog de PlayCanvas
https://blog.playcanvas.com/playcanvas-adopts-sogs-for-20x-3dgs-compression
Como referencia, el archivo del steak sandwich de 12MB es el más grande
Los demás están por debajo de 10MB, y algunos son bastante convincentes con 1-3MB
(por ejemplo: Iberico Sandwich 1MB, Clams and Caviar 1.8MB, etc.)
Pronto llegarán métodos de compresión avanzados como SOGS
Este ejemplo pesa 30MB
https://vincentwoo.com/3d/sutro_tower/
La principal razón de que los archivos sean grandes es que hay que almacenar los coeficientes de Spherical Harmonics
Es un problema que se puede resolver
Me da la impresión de que el nombre está un poco sobreusado
Ya existen Apache Spark, SPARK (Ada), sparklines y SPARQL
https://en.wikipedia.org/wiki/SPARC