Novedades del add-on de Gaussian Splatting

Más rápido en la GPU, más formatos y mejores herramientas para tus aplicaciones

Una captura en Gaussian Splatting del puente romano de Carmona, renderizada con el add-on de Gaussian Splatting

El 3D Gaussian Splatting se ha convertido rápidamente en una de las mejores formas de llevar el mundo real a una aplicación 3D. Bastan unos minutos de fotos o de vídeo para reconstruir un lugar o un objeto con detalle fotográfico, y los equipos industriales lo usan cada vez más para gemelos digitales, documentación de obras, inspecciones y formación inmersiva.

El add-on de Gaussian Splatting lleva esta técnica a las aplicaciones de Evergine, en escritorio, en móvil y en la web. En nuestra release de mayo le añadimos el formato comprimido SOG y el renderizado con WebGPU. Desde entonces hemos seguido mejorando el add-on en dos direcciones: hacerlo más rápido, sobre todo en la web, y que lea los ficheros que ya tienes, sea cual sea la herramienta que los generó. Por el camino también ha ganado funcionalidades nuevas para aplicaciones interactivas y una organización interna más limpia y robusta.

Para que sea fácil ver estas mejoras, también hemos publicado un visor web hecho con el add-on, donde cualquiera puede arrastrar un fichero de Gaussian Splatting y abrirlo en el navegador.

En resumen:

En este artículo

Renderizado más rápido con compute shaders

Para dibujar una escena de Gaussian Splatting, cada splat tiene que proyectarse en pantalla en cada frame: su forma 3D se convierte en una elipse 2D y su color se evalúa para la dirección de visión actual. Hasta ahora, este trabajo se hacía en el vertex shader y se repetía para cada vértice de cada splat.

En las plataformas que soportan compute shaders, como DirectX 12, Vulkan, Metal y WebGPU, el add-on hace ahora este trabajo en un pase de compute antes de dibujar. Los datos de los splats se guardan en la GPU con una disposición compacta, un compute shader procesa cada splat una vez por frame y el dibujado solo tiene que leer el resultado. La ordenación que mezcla los splats en el orden correcto también se ejecuta en la GPU. Así se aprovecha mejor la GPU, se reduce el trabajo por frame y la CPU queda libre para el resto de la aplicación.

WebGPU

En la web, los compute shaders solo están disponibles a través de WebGPU. El add-on soporta WebGPU desde la release de mayo, y ahora también usa ahí la vía de compute, así que las escenas se renderizan mucho más rápido en los navegadores con WebGPU. Para ello también han hecho falta algunos cambios en el backend de WebGPU de Evergine.

WebGL sigue soportado como alternativa para los navegadores sin WebGPU. En ese caso, los splats se ordenan en un web worker, de modo que la página no se bloquea.

Ajustado para cada dispositivo

Un camino rápido en la GPU es la mitad de la historia. La otra mitad es no hacer trabajo que nadie va a ver, algo que importa sobre todo en móviles y tablets, donde el calor y la batería son tan importantes como los FPS.

Las dos son propiedades normales del componente GSplatMesh, así que cada aplicación puede elegir su propio equilibrio entre calidad y coste, o cambiarlo en tiempo de ejecución según el dispositivo.

Más estable, más ligero y con carga más rápida

No todas las mejoras se ven en pantalla. Buena parte del trabajo ha ido a hacer el add-on más fiable:

Más formatos, un único pipeline

El 3D Gaussian Splatting es todavía un campo joven, y muchas aplicaciones de captura, herramientas de entrenamiento y visores web usan su propio formato. Unos priorizan la sencillez y otros la compresión, el streaming o las escenas muy grandes. Para que puedas abrir los ficheros que ya tienes, el add-on lee ahora los formatos más habituales:

FormatoExtensiónOrigen
PLY.plyEl código original de entrenamiento de 3DGS y la mayoría de herramientas de entrenamientoNuevo
PLY comprimido.plyPlayCanvas SuperSplat
Splat.splatLos primeros visores web
SOG.sogPlayCanvasMejorado
SPZ.spzNiantic, usado por ScaniverseNuevo
KSplat.ksplatGaussianSplats3DNuevo
LCCcarpetaXGRIDSNuevo
LCC2carpetaXGRIDSNuevo

Algunas notas sobre los nuevos:

No hace falta indicarle al add-on qué formato usa un fichero: lo detecta por el contenido, no por la extensión. Cada lector convierte su entrada a la misma representación interna, así que todos los formatos se benefician del mismo renderizado, el mismo pipeline en la GPU y las mismas opciones.

Selección y segmentación

Los splats pueden llevar ahora información adicional por splat, lo que abre la puerta a aplicaciones interactivas:

Primeros pasos

Instala el add-on Evergine.GaussianSplatting desde el Add-ons Manager de Evergine Studio y arrastra el prefab GSplatPrefab a tu escena. O crea la entidad desde código:

using Evergine.Framework;
using Evergine.Framework.Graphics;
using Evergine.GaussianSplatting;

public class MyScene : Scene
{
    protected override void CreateScene()
    {
        var gaussianSplatting = new Entity("GaussianSplatting")
            .AddComponent(new Transform3D())
            .AddComponent(new GSplatMesh()
            {
                // Cualquier formato soportado: .ply, .splat, .sog, .spz, .ksplat o una carpeta LCC
                SplatPath = "Splats/warehouse.spz",

                // Opcional: descarta los splats que apenas aportan a la imagen
                MinContribution = 0.15f,

                // Opcional: reordena como mucho cada 150 ms
                SortIntervalMs = 150,
            })
            .AddComponent(new GSplatRenderer());

        this.Managers.EntityManager.Add(gaussianSplatting);
    }
}

El add-on elige por sí mismo la vía de compute en las plataformas que la soportan, así que el mismo código funciona en todas. La sección de Gaussian Splatting de la documentación de Evergine explica cada componente y los pasos adicionales para proyectos web.

Míralo en acción: nuestro visor web

Para que cualquiera pueda probar el add-on fácilmente, hemos publicado un visor de Gaussian Splatting en splat.evergine.com. Es una aplicación de ejemplo hecha con Evergine y el add-on de Gaussian Splatting, así que todo lo que cuenta este artículo está funcionando ahí. Es gratuito, funciona en el navegador y no hay que instalar nada: arrastra un modelo a la página y se abre.

El visor web, listo para recibir un modelo arrastrándolo

Arrastra un fichero o una carpeta a la página, o búscalo en tu equipo

Estas son sus principales funcionalidades:

El panel de controles de cámara del visor web

La barra de herramientas cambia entre la cámara orbital y la libre, encuadra el modelo y abre los paneles de transformación y de opciones. El botón de ayuda muestra los controles de la cámara

El panel de opciones y el panel de rendimiento del visor web

El panel de opciones, con el panel de rendimiento a la izquierda

Los centros de las gaussianas dibujados como puntos sobre el modelo

Mostrar el centro de cada gaussiana ayuda a revisar la densidad y la estructura de una captura

El visor web en un móvil

El visor en un móvil, con controles táctiles

Además de mostrar lo que puede hacer el add-on, es una herramienta práctica para el día a día: comprobar que una exportación se abre bien, comparar dos versiones de un escaneo o enseñar una captura en una reunión sin preparar un proyecto.

Lo que viene

El Gaussian Splatting evoluciona muy rápido, y seguiremos dando soporte a los nuevos formatos y técnicas que vayan apareciendo. Estas son algunas de las cosas en las que estamos trabajando ahora:

Las dos apuntan al mismo objetivo: que las escenas de Gaussian Splatting no sean solo algo que mirar, sino algo con lo que las aplicaciones puedan interactuar.

Pruébalo y cuéntanos qué te parece

Estas mejoras forman parte de la release de noviembre de 2026 de Evergine. Actualiza Evergine, añade el add-on de Gaussian Splatting a tu proyecto y carga tus capturas.

Nos encantará ver lo que capturas y saber qué formatos o funcionalidades te gustaría tener después.

David Ávila
Autor
David Ávila
Plain Concepts Research