Skip to content

Blender 5.3 importa y renderiza Gaussian splats de forma nativa, pero todavía no puede exportarlos

El 16 de septiembre, Sergey Sharybin fusionó la solicitud de incorporación que proporciona a Blender compatibilidad nativa con Gaussian splats. Blender 5.3 ya puede importar una captura de splats desde un archivo PLY o SPZ, almacenarla como una nube de puntos con un nuevo tipo y renderizarla en Workbench, EEVEE y Cycles. La fase alfa dura hasta el 30 de septiembre y el lanzamiento está previsto para el 10 de noviembre. Hasta ahora, trabajar con splats en Blender implicaba usar un complemento como BlendSplat o algún truco con nodos de geometría que dibujaba por cada punto un cuadrilátero orientado hacia la cámara y dejaba de funcionar al superar unos pocos millones. La solicitud de incorporación, las notas de la versión 5.3.

Una captura Gaussian splat de una mesa con un peluche y una planta, renderizada en la vista 3D de Blender 5.3

Una captura de splats en la vista 3D de Blender 5.3, procedente de las notas de la versión. Imagen: Blender Foundation.

Qué se ha incorporado

El diseño es sencillo y conviene conocerlo, porque determina qué puedes hacer con un splat una vez que está en la escena. Un splat es una nube de puntos. El bloque de datos PointCloud incorpora una opción Type con dos valores, Points y 3D Gaussian Splats, y el segundo incluye atributos adicionales para cada punto: scale como vector, rotation como cuaternión, radiance:base para almacenar el color base y la opacidad, y una serie radiance:sh_N para las bandas superiores de armónicos esféricos que hacen que un splat tenga un aspecto distinto según el ángulo desde el que se observe. Como se trata de una nube de puntos, los nodos de geometría pueden leer y modificar todos esos datos.

La importación admite PLY, cuyo importador detecta un splat a partir de los atributos que encuentra, y todas las versiones de SPZ hasta la 4. Al importar los archivos SPZ, su sistema de coordenadas se convierte a la convención de Blender para los ejes vertical y frontal, aunque las notas advierten que no todas las herramientas escriben archivos SPZ conforme a la especificación, por lo que quizá sea necesario rotarlos. En los nodos de geometría hay un nuevo nodo Set Point Cloud Type, un nuevo nodo Import SPZ, y el nodo Import PLY ahora genera una nube de puntos cuando detecta un splat y una malla en caso contrario. La importación de USD también incorpora el esquema de Gaussian splats estandarizado por OpenUSD.

El renderizado funciona en los tres motores. De forma predeterminada, un splat se renderiza mediante un sombreador emisivo controlado por su atributo radiance, sin que tengas que crear ese material por tu cuenta. Sin embargo, puedes sustituirlo, y ahí es donde aparecen las posibilidades creativas. Si conectas el atributo a un Diffuse BSDF, la captura responderá a las luces de la escena.

Editor de nodos de Blender 5.3 con un atributo de radiancia conectado a un Diffuse BSDF sobre una captura de splats iluminada por una luz de la escena

Reiluminación de una captura: el atributo de radiancia alimenta un Diffuse BSDF, por lo que una luz de la escena ilumina una mesa escaneada. Imagen: Blender Foundation.

Qué no se ha incorporado

No hay exportación. Un splat entra en Blender y se queda allí, o se renderiza como píxeles. Las notas de la versión lo dicen claramente y también documentan el resto de las limitaciones actuales: el rendimiento aún no está al nivel que desea el equipo; el flujo de procesamiento presupone sRGB, por lo que un splat de baja opacidad y alta radiancia puede renderizarse incorrectamente en Cycles y EEVEE; y Apply Transform todavía no actualiza los atributos de escala, rotación ni armónicos esféricos, por lo que aplicar de forma permanente una transformación a un splat lo corrompe. La tarea de diseño estableció el objetivo de manejar cómodamente diez millones de puntos y avanzar después hacia los cien millones, y las notas reconocen con franqueza que la versión 5.3 es el primer paso de ese recorrido, no la meta.

La tarea de diseño también indica hacia dónde se dirige esta tecnología. Con el tiempo, el tipo de nube de puntos para splats cambiará el funcionamiento de las transformaciones y el rigging del objeto, y es la primera vez que vemos una herramienta generalista incluir «hacer rigging de un splat» en su hoja de ruta. Además, los formatos elegidos coinciden con el trabajo de estandarización que se está realizando en otros ámbitos: SPZ de Niantic, la extensión de glTF KHR_gaussian_splatting de Khronos y el esquema de OpenUSD. Tarea de diseño #159470.

Por qué nos afecta

En unos dieciocho meses, los splats han pasado de ser una demostración de investigación a un formato con toda una cadena de herramientas, y este mes se ha cerrado el círculo. SuperSplat 3.0 permite editarlos en un navegador mediante WebGPU. PlayCanvas y Babylon.js los renderizan en un motor. Ahora Blender los carga en la misma escena que tus mallas y permite iluminarlos. Lo que falta es la vía de salida desde Blender, y la ruta práctica para incorporarlos a un juego web sigue siendo captura, SuperSplat y motor, con Blender reservado para el renderizado y el desarrollo visual, en lugar de utilizarlo como una etapa del flujo de producción.

Para los creadores que utilizan nuestro complemento para Blender, el uso inmediato es la ambientación de escenas. Escanea una habitación o un objeto de atrezo, colócalo en la escena, ilumínalo con tus propias luces y renderiza imágenes fijas y vistas giratorias sobre algo real. Llevar esa captura a un juego interactivo es un problema distinto y, siendo francos, el estado actual de la tecnología es que un splat sirve como decorado: puedes pasar junto a él, pero no puedes colisionar con él ni aplicarle rigging. Que Blender haya incluido el rigging en su hoja de ruta es la primera señal de que esto último podría cambiar.

Si utilizas Blender para crear juegos en general, nuestra guía Blender 5 para artistas de videojuegos explica qué ha cambiado en la serie 5.x, y la guía de complementos enumera qué sigue necesitando un complemento y qué no.

Referencias