- Spark es un renderizador avanzado creado para renderizar 3D Gaussian Splatting en escenas de Three.js
- Fue desarrollado por World Labs y permite colocar splats junto con otras mallas dentro de escenas existentes
- Apunta a una renderización rápida en todos los dispositivos y se enfoca en manejar contenido splat en diversos entornos
- Admite efectos splat dinámicos programables, lo que permite configurar efectos dentro de la escena más allá de una visualización estática
- Soporta varios formatos, como ply, sogs, spz, splat y ksplat, y se puede empezar directamente desde la documentación oficial
Renderizador splat integrado en escenas de Three.js
- Spark es un renderizador de 3D Gaussian Splatting para Three.js
- Fue desarrollado por World Labs
- Se integra en escenas existentes de Three.js y puede usarse junto con otras mallas y splats
Funciones de renderización y formatos soportados
- Se indica que ofrece renderización rápida en todos los dispositivos
- Admite efectos splat dinámicos programables
- Los formatos soportados son los siguientes
- ply
- sogs
- spz
- splat
- ksplat
- La documentación para empezar está disponible en Get started
1 comentarios
Opiniones en Hacker News
La demo es realmente impresionante y funciona bien incluso en un iPhone viejo.
Desde la perspectiva de un desarrollador de juegos aficionado sin muchos conocimientos de programación 3D, estaría bueno que en GitHub o en algún lugar del sitio web definieran en una sola línea qué es el Gaussian splatting.
Con algo como lo de Wikipedia, “Gaussian splatting es una técnica de renderizado volumétrico que renderiza datos volumétricos directamente, sin convertirlos en superficies ni primitivas de líneas”, el proyecto y sus posibles usos generarían mucha más expectativa.
Si se pueden crear nubes, fuego o humo de alto rendimiento, sería genial.
La demo de escaneo de comida, especialmente la sección de ejemplos “Interactivity”, es increíble.
Me gustó en particular la escena de Mel's Steak Sandwich donde se mira dentro de los agujeros del pan, y el rendimiento en una notebook con gráficos integrados es sorprendentemente bueno para el nivel de detalle que se ve.
Me pregunto dónde se usa más comúnmente esta técnica hoy en día.
Tipatat aportó una buena cantidad de escaneos de comida para la demo, y también me gustan los escaneos de flores de kotohibi: https://superspl.at/user?id=kotohibi
No lo digo con sarcasmo; de verdad está muy prolijo.
Esto también está genial, y BabylonJS también tiene buen soporte para Gaussian splatting: https://doc.babylonjs.com/features/featuresDeepDive/mesh/gau...
Me da curiosidad cómo se comparan Babylon, Aframe, Three.js y PlayCanvas [2] según quienes los hayan usado.
Según entiendo, PlayCanvas es el más maduro, con más funciones y buen rendimiento, pero es comercial; Babylon es un motor 3D con muchas funciones; y Three.js es bastante más crudo. Tiene buenos elementos como animación y texturas, pero al final se siente como armar tu propio conjunto de herramientas.
Me gustaría saber si alguien tuvo buenas o malas experiencias con alguno de ellos.
La demo es realmente estable. Me pregunto cuál es el atractivo principal de Aframe.
También me intriga cómo se desarrollará el futuro del Gaussian splatting: si tendrá usos más allá de la visualización o los “gemelos digitales” industriales, si en un futuro cercano se podrá editar o animar, y cuándo será útil en creación de contenido y juegos.
[1] https://github.com/aframevr/aframe
[2] https://playcanvas.com/
Dejo aquí el enlace al repositorio para que sea un poco más visible: https://github.com/sparkjsdev/spark
Muy bueno.
Me pregunto dónde está actualmente el cuello de botella de rendimiento, especialmente si tienen alguna observación sobre escenas dinámicas.
El ejemplo de simulación de partículas va a tirones, pero mejora mucho al rotar la cámara; parece que el fondo estático es bastante más pesado de lo que aparenta.
Por otro lado, dejando de lado el cuello de botella, la pirámide de Sierpinski generada proceduralmente está excelente.
Probablemente giraste la cámara hacia una dirección con menos splats.
Todavía hay bastante trabajo por hacer para lograr un rendimiento consistente, y lo próximo probablemente será revisar un sistema de LOD.
Sigo siendo bastante escéptico sobre si el Gaussian splatting tiene sentido más allá de las demos.
Los archivos son demasiado grandes. Por ejemplo, un solo sándwich de steak pesa 12 MB.
En SIGGRAPH del año pasado había una réplica tipo Matterport basada en Gaussian splatting, y para ver un departamento de dos habitaciones había que streamear 1,5 GB.
La demo en sí está muy buena.
Los demás pesan menos de 10 MB, y varios de los bastante convincentes están en el rango de 1 a 3 MB. Por ejemplo, Iberico Sandwich pesa 1 MB y Clams and Caviar 1,8 MB.
También vienen métodos de compresión más avanzados. Por ejemplo, SOGS. Este pesa 30 MB.
https://vincentwoo.com/3d/sutro_tower/
Puede almacenar alrededor de un millón de gaussianas, incluidos todos los coeficientes de armónicos esféricos, en unos 14 MB.
Hay un buen artículo en el blog de PlayCanvas: https://blog.playcanvas.com/playcanvas-adopts-sogs-for-20x-3...
El trabajo es genial, pero en Firefox en una laptop con una GPU Nvidia RTX A3000 el rendimiento es bastante malo.
Aquí hay suficientes núcleos shader como para causar una quemadura de primer grado.
Me pregunto si podría caminar con el teléfono y capturar Gaussian splats de cosas como pasto, arbustos y tierra.
Y luego seleccionar un cuadrado de terreno de 1 metro por 1 metro, o un cubo de 1 metro con arbustos, y crear un mundo “con aspecto de Minecraft” repitiendo bloques de pasto y mezclando a veces tierra y arbustos.
Supongo que renderizar miles de bloques requeriría hardware bastante potente.
Creo que se vería increíble en la práctica.
Se ve realmente genial.
¿Funcionaría también en VR al abrir la página web en un navegador? Si es así, sería aún más impresionante.