Sobre o projeto

Bevy Hanabi é um plugin moderno de sistema de partículas orientado por GPU para o motor de jogo Bevy. Ele transfere a maior parte do trabalho de simulação e renderização para a GPU por meio de compute shaders, permitindo efeitos visuais (VFX) em tempo real em escala. O design é inspirado em sistemas de partículas de motores de jogos líderes do setor. **Principais Recursos:** - **Spawn:** Taxa constante, burst único, burst repetido, reset, ativação/desativação e parâmetros aleatorizados. - **Initialize:** Posição sobre formas (círculo, esfera, cone/cone truncado), deslocamentos aleatórios, velocidade sobre formas, cor/tamanho/idade/tempo de vida por partícula. - **Update:** Integração de movimento de Euler, forças (gravidade, radial, tangencial, campos de força, arrasto linear), tempo de vida, mudanças de tamanho/cor ao longo do tempo, condições de simulação (sempre ou apenas quando visível). - **Render:** Quads texturizados, malhas 3D genéricas, deformação (esticar, rastros/fitas), suporte de câmera (2D/3D, câmeras duplas, múltiplos viewports, HDR/bloom), billboarding, modos de orientação e dimensionamento em espaço de tela. - **Expressions API:** Personalize atributos de partículas (posição, cor, etc.) por meio de um sistema de expressões baseado em grafo. **Uso:** 1. Adicione `bevy_hanabi = "0.19"` ao `Cargo.toml`. 2. Registre `HanabiPlugin` no seu aplicativo Bevy. 3. Crie um `EffectAsset` com configurações de spawn, inicializadores, atualizadores e modificadores de renderização. 4. Gere um componente `ParticleEffect` com um handle para o asset. **Compatibilidade:** - Compatível com versões do Bevy >= 0.6; a branch `main` acompanha a versão mais recente do Bevy. - Suporte a WebAssembly (via WebGPU) está disponível desde a v0.13. **Cargo Features:** - `2d` (padrão): Habilita renderização de câmera 2D. - `3d` (padrão): Habilita renderização de câmera 3D. - Os usuários podem desabilitar os recursos padrão para otimizar para um único tipo de câmera. **Status:** Em desenvolvimento intenso; adequado para efeitos de tamanho moderado. Feedback e contribuições são bem-vindos. **Licença:** Licenciado duplamente sob MIT ou Apache-2.0.