Babylon.js 9.0: iluminação em clusters, partículas por nós e reformulação do Gaussian Splatting
O Babylon.js 9.0 foi lançado e é a maior versão já disponibilizada pelo mecanismo de código aberto para WebGPU/WebGL. O principal recurso é um sistema de iluminação em clusters que permite às cenas renderizar centenas ou milhares de luzes dinâmicas com taxas de quadros fluidas tanto no WebGPU quanto no WebGL 2.
O novo Editor de Partículas por Nós do Babylon.js 9.0
A iluminação em clusters muda tudo
A iluminação tradicional por pixel obriga cada pixel a calcular as contribuições de todas as luzes da cena, mesmo daquelas que não estão nem perto dele. A iluminação em clusters resolve isso agrupando as luzes em blocos no espaço da tela e fatias de profundidade. Durante a renderização, cada pixel avalia apenas as luzes que realmente o afetam. Como resultado, uma cena com 1.000 luzes dinâmicas agora pode ser executada em tempo real, em vez de ficar extremamente lenta.
Isso funciona no WebGPU e no WebGL 2, o que significa que a melhoria de desempenho alcança o maior público possível.
Luzes de área texturizadas
As luzes de área foram introduzidas no Babylon.js 8.0. A versão 9.0 adiciona texturas de emissão, permitindo projetar qualquer imagem por meio de uma luz de área retangular. Pense em projeções de vitrais, painéis de LED ou configurações de iluminação cinematográfica com emissão de luz fisicamente precisa.
Iluminação volumétrica
O novo sistema de iluminação volumétrica renderiza feixes de luz através de neblina, poeira e bruma. Ele inclui parâmetros configuráveis de extinção e fase, oferecendo controle artístico sobre a forma como a luz se dispersa na atmosfera. O sistema é compatível com fontes de luz direcionais e usa shaders de computação do WebGPU quando disponíveis, com alternativas para WebGL 2.
Editor de Partículas por Nós
O Editor de Partículas por Nós (NPE) é uma ferramenta visual de arrastar e conectar para criar sistemas de partículas. Se você já usou o Editor de Materiais por Nós, o fluxo de trabalho é idêntico. Você tem controle total sobre formas de emissão, folhas de sprites, comportamentos de atualização e subemissores por meio de um grafo de nós não destrutivo. Mapas de fluxo e atratores gravitacionais completam as melhorias nas partículas.
Reformulação do Gaussian Splatting
O Babylon.js introduziu suporte ao Gaussian Splatting na versão 7.0. A versão 9.0 reescreve o sistema, adicionando projeção de sombras, Triangle Splatting para renderização opaca semelhante à de malhas e suporte aos formatos compactados SOG/SOGS, além de arquivos .splat, .ply e .spz. Agora você pode combinar vários recursos de splats em uma única cena com ordenação global, e cada parte pode ser transformada e animada de maneira independente. A Adobe contribuiu para esse trabalho.
Sistema Frame Graph
O Frame Graph, introduzido como recurso alfa na versão 8.0, chega à v1 nesta versão. Trata-se de um grafo acíclico direcionado no qual cada nó representa uma tarefa de renderização. O sistema gerencia automaticamente a alocação, a reutilização e a otimização de texturas. A equipe relata uma economia de memória da GPU de 40% ou mais em alguns casos. Você pode criar pipelines de renderização personalizados visualmente por meio do Editor de Grafos de Renderização por Nós ou programaticamente usando o framework de classes.
Outras novidades
O redirecionamento de animações permite aplicar animações do esqueleto de um personagem a outro, mesmo que tenham estruturas ósseas e convenções de nomenclatura diferentes. A versão também inclui um inspetor reconstruído, renderização de mundos extensos para evitar oscilações causadas por pontos flutuantes em sistemas de coordenadas amplos e recursos de renderização geoespacial.