Babylon.js 9.0: iluminación agrupada, partículas por nodos y renovación del splatting gaussiano
Babylon.js 9.0 ya está disponible y es la mayor versión publicada hasta la fecha por este motor WebGPU/WebGL de código abierto. La función estrella es un sistema de iluminación agrupada que permite a las escenas renderizar cientos o miles de luces dinámicas con una tasa de fotogramas fluida tanto en WebGPU como en WebGL 2.
El nuevo Editor de Partículas por Nodos de Babylon.js 9.0
La iluminación agrupada lo cambia todo
La iluminación tradicional por píxel obliga a cada píxel a calcular las contribuciones de todas las luces de la escena, incluso de aquellas que no están cerca. La iluminación agrupada resuelve este problema organizando las luces en mosaicos del espacio de pantalla y segmentos de profundidad. Durante el renderizado, cada píxel solo evalúa las luces que realmente le afectan. El resultado es que una escena con 1000 luces dinámicas ahora puede ejecutarse con tasas de fotogramas en tiempo real en lugar de ralentizarse.
Esto funciona tanto en WebGPU como en WebGL 2, lo que permite que la mejora de rendimiento llegue al público más amplio posible.
Luces de área con texturas
Las luces de área se introdujeron en Babylon.js 8.0. La versión 9.0 añade texturas de emisión, de modo que puedes proyectar cualquier imagen mediante una luz de área rectangular. Piensa en proyecciones de vidrieras, pantallas de paneles LED o configuraciones de iluminación cinematográfica con una emisión de luz físicamente precisa.
Iluminación volumétrica
El nuevo sistema de iluminación volumétrica renderiza haces de luz a través de la niebla, el polvo y la bruma. Incluye parámetros configurables de extinción y fase para controlar de forma artística cómo se dispersa la luz en la atmósfera. El sistema admite fuentes de luz direccionales y utiliza shaders de cómputo de WebGPU cuando están disponibles, con alternativas para WebGL 2.
Editor de Partículas por Nodos
El Editor de Partículas por Nodos (NPE) es una herramienta visual basada en arrastrar y conectar para crear sistemas de partículas. Si has utilizado el Editor de Materiales por Nodos, el flujo de trabajo es idéntico. Dispones de control total sobre las formas de emisión, las hojas de sprites, los comportamientos de actualización y los subemisores mediante un grafo de nodos no destructivo. Los mapas de flujo y los atractores gravitatorios completan las mejoras del sistema de partículas.
Renovación del splatting gaussiano
Babylon.js incorporó compatibilidad con el splatting gaussiano en la versión 7.0. La versión 9.0 reescribe el sistema e incorpora proyección de sombras, splatting de triángulos para un renderizado opaco similar al de las mallas y compatibilidad con los formatos comprimidos SOG/SOGS, además de los archivos .splat, .ply y .spz. Ahora puedes combinar varios recursos de splatting en una misma escena con ordenación global, y cada parte puede transformarse y animarse de manera independiente. Adobe contribuyó a este trabajo.
Sistema Frame Graph
Frame Graph, introducido como función alfa en la versión 8.0, alcanza la versión 1 en esta publicación. Es un grafo acíclico dirigido en el que cada nodo representa una tarea de renderizado. El sistema gestiona automáticamente la asignación, reutilización y optimización de texturas. El equipo informa de ahorros de memoria de la GPU del 40 % o más en algunos casos. Puedes componer canalizaciones de renderizado personalizadas de forma visual mediante el Editor de Grafos de Renderizado por Nodos o por código mediante el framework de clases.
Otras novedades
La readaptación de animaciones permite aplicar animaciones del esqueleto de un personaje a otro, incluso si tienen estructuras óseas y convenciones de nomenclatura diferentes. La versión también incluye un inspector reconstruido, renderizado de mundos grandes para evitar las vibraciones causadas por la precisión de coma flotante en sistemas de coordenadas extensos y funciones de renderizado geoespacial.