UStackUStack
Spark 2.0 icon

Spark 2.0

Spark 2.0 es un renderizador de 3D Gaussian Splatting en el navegador con LoD en streaming para mundos 3DGS grandes en THREE.js y WebGL2.

Spark 2.0

¿Qué es Spark 2.0?

Spark 2.0 es una actualización de Spark, un renderizador dinámico de 3D Gaussian Splatting (3DGS) diseñado para ejecutarse en el navegador. Su propósito principal es transmitir y renderizar mundos 3DGS grandes en la web ajustando automáticamente el nivel de detalle según el movimiento del visor.

Spark funciona con THREE.js y WebGL2, con soporte amplio para dispositivos a través de navegadores web estándar. En versiones anteriores de Spark, soportaba renderizar múltiples objetos 3DGS en la misma escena, edición y relighting en tiempo real, y un sistema de shader graph para efectos y animaciones dinámicas basadas en splats. Spark 2.0 añade un sistema de Level-of-Detail (LoD) que selecciona el detalle a renderizar según el punto de vista actual y transmite los datos necesarios por Internet.

Características clave

  • Renderizado 3DGS en navegador: Diseñado para ejecutarse en un navegador web con THREE.js y WebGL2, con soporte para escritorio, iOS, Android y VR mediante reproducción web estándar.
  • Sistema dinámico de Level-of-Detail (LoD): Optimiza el detalle 3DGS según el punto de vista del visor para renderizar solo los datos necesarios.
  • Streaming para mundos grandes: Transmite datos 3DGS necesarios por Internet al moverte por una escena, permitiendo «mundos 3DGS enormes» en lugar de renderizar todo a máxima fidelidad.
  • Composición unificada de mundos 3DGS: Resuelve la necesidad de ordenación correcta de fondo a frente entre múltiples objetos 3DGS para que coexistan en el mismo espacio 3D sin artefactos de ordenación local «pegados».
  • Soporte para shader graph (característica de Spark): Usa un sistema de shader graph para crear efectos y animaciones dinámicas basadas en splats (descrito como parte del conjunto de características anteriores de Spark).

Cómo usar Spark 2.0

Comienza con una experiencia web 3DGS basada en Spark (o constrúyela en THREE.js), luego activa/adjunta el método LoD de Spark 2.0 para el mundo 3DGS objetivo. Al moverte por la escena, el renderizador optimiza automáticamente el nivel de detalle de los splats según el punto de vista actual y transmite los datos correspondientes para el renderizado.

Si estás construyendo o experimentando con la apariencia de splats, puedes interactuar con las propiedades subyacentes de los splats descritas en la publicación (ubicación central, escalas XYZ, rotación, color RGB y opacidad) y validar cómo el pipeline de renderizado mezcla splats semitransparentes.

Casos de uso

  • Exploración en streaming de entornos escaneados grandes: Al navegar un mundo 3DGS grande en el navegador, la selección LoD y el streaming mantienen el renderizado práctico adaptando el detalle de splats al punto de vista del usuario.
  • Experiencias 3DGS listas para VR en entornos web: Dado que Spark se basa en WebGL2/THREE.js y se menciona «Mejor experimentado en VR» para un ejemplo, Spark 2.0 se adapta a flujos de exploración VR interactiva basados en renderizado web.
  • Escenas 3DGS multi-objeto: Para escenas compuestas de múltiples objetos 3DGS, el diseño de Spark busca una ordenación unificada para que los objetos se integren visualmente en el espacio 3D.
  • Edición y relighting en tiempo real de escenas basadas en splats (característica de Spark): En flujos que requieren cambios interactivos en una escena 3DGS manteniendo renderizado dinámico de splats, las capacidades anteriores de Spark son contexto relevante para Spark 2.0.
  • Efectos y animaciones dinámicas de splats (shader graph): Cuando necesitas visuales procedurales o sombreados dinámicamente basados en splats, el sistema de shader graph de Spark es el mecanismo descrito en la fuente.

Preguntas frecuentes

¿Qué añade Spark 2.0 respecto a Spark?

Spark 2.0 añade un sistema de Level-of-Detail (LoD) que transmite y renderiza mundos 3DGS grandes ajustando el nivel de detalle según el punto de vista del visor.

¿Cómo renderiza Spark el 3D Gaussian Splatting en el navegador?

El renderizador está diseñado para integrarse con THREE.js y ejecutarse en WebGL2 en un navegador web estándar.

¿Qué son los «splats» 3DGS en este contexto?

La publicación describe los splats como millones de elipsoides coloreados semitransparentes cuyas propiedades incluyen un centro 3D, radios XYZ (escalas), orientación, color RGB y opacidad; se mezclan para formar superficies y detalles finos.

¿Soporta Spark múltiples objetos 3DGS en la misma escena?

Sí, Spark (el renderizador) soporta múltiples objetos 3DGS en la misma escena, con decisiones de diseño para garantizar una ordenación unificada de fondo a frente entre objetos.

¿Cuál es el rol de la ordenación al renderizar splats?

La publicación explica que un enfoque común es el algoritmo del pintor (ordenación de fondo a frente) usando blending con el operador «over»; el diseño del sistema de Spark enfatiza la ordenación global correcta entre objetos.

Alternativas

  • Renderizadores web 3DGS sin streaming: Otros renderizadores pueden cargar y renderizar un conjunto fijo de splats sin LoD en streaming basado en la vista, lo que puede limitar mundos muy grandes.
  • Otros enfoques de renderizado 3D en navegador (basados en mallas/puntos): En lugar de 3DGS, algunos sistemas renderizan superficies con triángulos con texturas u otros primitivos, sacrificando las características de densidad/apariencia basadas en splats por flujos de trabajo y rendimiento diferentes.
  • Diferentes APIs gráficas web: La publicación se centra específicamente en WebGL2 por su amplia disponibilidad; las alternativas podrían basarse en otras APIs, reduciendo potencialmente la cobertura de dispositivos según la compatibilidad.
  • Pipelines 3DGS independientes: Pipelines de escritorio o nativos que preprocesan y renderizan 3DGS fuera del navegador pueden evitar la complejidad de streaming/LoD web, pero no ofrecerán el mismo modelo de interacción “en el navegador” descrito para Spark.