30个版本 (16个重大更新)
0.17.1 | 2024年7月5日 |
---|---|
0.17.0-rc.1 | 2024年6月30日 |
0.15.0 | 2024年2月18日 |
0.14.1 | 2023年11月10日 |
0.3.0 | 2022年2月17日 |
#378 in 游戏开发
每月15,340次下载
被 5 个 crate使用
32KB
229 行
使用方法
只需将插件添加到您的应用程序中即可
app.add_plugins(bevy_framepace::FramepacePlugin);
默认情况下,插件将自动测量您的帧速率并用于帧速率控制。
您可以通过修改FramepaceSettings
资源在运行时调整帧速率限制。例如,将帧速率限制设置为30fps
settings.limiter = Limiter::from_framerate(30.0),
请参阅示例文件夹中的demo.rs
,或使用以下命令运行:
cargo run --release --example demo
工作原理
该插件通过记录渲染每一帧所需的时间,并在达到期望的帧时间前让主线程休眠来工作。这确保了在最后一刻才启动下一帧,从而延迟事件循环的重新启动。通过延迟事件循环(以及输入收集),这种方法通过将读取输入的操作移至更接近渲染帧的位置来减少运动到光子延迟。
需要spin_sleep
依赖项来获得精确的休眠时间。标准库中的休眠函数对于此应用来说不够精确,尤其是在Windows上。
Bevy版本支持
我打算跟踪Bevy的main
分支。欢迎提交支持此分支的PR!
bevy | bevy_framepace |
---|---|
0.14 | 0.17 |
0.13 | 0.15, 0.16 |
0.12 | 0.14 |
0.11 | 0.13 |
0.10 | 0.12 |
0.9 | 0.7, 0.8, 0.9, 0.10, 0.11 |
0.8 | 0.5, 0.6 |
0.7 | 0.4 |
0.6 | 0.3 |
许可证
bevy_framepace
是免费、开源和许可宽松的!除非特别说明(以下和/或单独文件中),本存储库中的所有代码都根据您的选择在以下两种许可证下双许可
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache许可证2.0版本 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
这意味着您可以选择您喜欢的许可证!这种双许可方法在Rust生态系统中被广泛采用,并且有很好的理由包含两者。
您的贡献
除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在工作中的任何贡献,应按上述方式双重许可,不附加任何额外条款或条件。
依赖项
~36–73MB
~1.5M SLoC