Sobre el proyecto

Bevy Hanabi es un plugin moderno de sistema de partículas impulsado por GPU para el motor de juego Bevy. Delega la mayor parte del trabajo de simulación y renderizado a la GPU mediante compute shaders, lo que permite efectos visuales (VFX) en tiempo real a escala. El diseño está inspirado en los sistemas de partículas de motores de juego líderes en la industria. **Características principales:** - **Spawn:** Tasa constante, ráfaga única, ráfaga repetida, reinicio, activación/desactivación y parámetros aleatorizados. - **Initialize:** Posición sobre formas (círculo, esfera, cono/cono truncado), desplazamientos aleatorios, velocidad sobre formas, color/tamaño/edad/tiempo de vida por partícula. - **Update:** Integración de movimiento de Euler, fuerzas (gravedad, radial, tangencial, campos de fuerza, arrastre lineal), tiempo de vida, cambios de tamaño/color a lo largo del tiempo, condiciones de simulación (siempre o solo cuando es visible). - **Render:** Quads texturizados, mallas 3D genéricas, deformación (estiramiento, estelas/cintas), soporte de cámara (2D/3D, cámaras duales, múltiples viewports, HDR/bloom), billboarding, modos de orientación y dimensionamiento en espacio de pantalla. - **Expressions API:** Personaliza atributos de partículas (posición, color, etc.) mediante un sistema de expresiones basado en grafos. **Uso:** 1. Añade `bevy_hanabi = "0.19"` a `Cargo.toml`. 2. Registra `HanabiPlugin` en tu aplicación Bevy. 3. Crea un `EffectAsset` con ajustes de spawn, inicializadores, actualizadores y modificadores de renderizado. 4. Genera un componente `ParticleEffect` con un handle al asset. **Compatibilidad:** - Compatible con versiones de Bevy >= 0.6; la rama `main` sigue la última versión de Bevy. - El soporte de WebAssembly (mediante WebGPU) está disponible desde la v0.13. **Cargo Features:** - `2d` (por defecto): Habilita el renderizado de cámara 2D. - `3d` (por defecto): Habilita el renderizado de cámara 3D. - Los usuarios pueden desactivar las características por defecto para optimizar para un solo tipo de cámara. **Estado:** En desarrollo intenso; adecuado para efectos de tamaño moderado. Se agradecen comentarios y contribuciones. **Licencia:** Doble licencia bajo MIT o Apache-2.0.