#particle #bevy #graphics #gamedev #game-engine #performance

bevy_firework

适用于Bevy游戏引擎的CPU驱动、批量渲染的粒子系统

5 个版本 (破坏性更新)

0.5.0 2024年7月9日
0.4.0 2024年7月8日
0.3.0 2024年3月5日
0.2.0 2024年2月21日
0.1.0 2024年2月19日

#403 in 游戏开发

Download history 1/week @ 2024-06-06 210/week @ 2024-07-04 42/week @ 2024-07-11 43/week @ 2024-07-18 148/week @ 2024-07-25 21/week @ 2024-08-01 2/week @ 2024-08-08

每月下载量 214

MIT/Apache

165KB
1K SLoC

Rust 1K SLoC // 0.0% comments WebGPU Shader Language 153 SLoC

Crates.io Crates.io CI

Bevy Firework 🎆

Bevy firework是一个粒子系统插件,其中粒子在CPU上模拟并使用GPU批处理进行渲染。这允许每个粒子系统在单个绘制调用中渲染(而不是每个粒子一个)。

虽然不如纯GPU粒子系统快,但这从基于CPU的粒子系统的朴素方法提供了巨大的速度提升(使得渲染数万粒子的帧率下降不明显),并保持了基于CPU的粒子系统的大部分灵活性(例如,轻松访问物理数据以进行粒子碰撞,简化粒子系统动画)。

collision example pbr example sparks example

当前功能

  • 标牌 粒子。
  • 可配置的与Bevy的PBR渲染集成(即粒子可以接收阴影,受雾和光照变化的影响)。
  • 与任意 avian 碰撞器的粒子碰撞。
  • WASM和WebGL兼容。
  • 软粒子边缘。
  • 动画属性:某些参数可以定义为自定义曲线,以表达粒子生命周期中的变化
    • 缩放
    • 颜色
  • 随机属性:某些属性可以随机化,以便为每个粒子随机采样
    • 粒子寿命
    • 初始线性速度
    • 初始径向速度
    • 初始缩放
  • 发射形状
    • 圆盘
    • 球体
  • 单次发射模式或连续发射。

当前限制

  • 不能为粒子使用自定义图像。

版本表

bevy_firework bevy bevy_utilitarian
0.1 0.12 0.2
0.2 0.12 0.3
0.3 0.13 0.4
0.4 0.14 0.5
0.5 0.14 0.5

依赖项

~35–73MB
~1.5M SLoC