首页 > 开源 > 开源 Rust 游戏引擎 Bevy 0.20 发布:着色器换 WESL、光追渲染器转正,全都在给场景编辑器铺路

开源 Rust 游戏引擎 Bevy 0.20 发布:着色器换 WESL、光追渲染器转正,全都在给场景编辑器铺路

OSChina资讯 2026-10-09 11:45 6 阅读 查看原文

Bevy 0.20 已正式发布,十个多月攒出来的大版本,核心词是「场景编辑器」——几乎所有重量级新特性都在为它铺路。最抢眼的是 Solari,Bevy 的实时路径追踪渲染器,这次把 ReSTIR 从默认关掉了,理由是它吃掉不少性能却换不来明显的画质提升。关了之后阴影质量会下降,但换来的是 DLSS-RR 4.5 加持下大幅加强的去噪,以及跑得上 macOS(Metal)的兼容性。

渲染侧的另一大动作是着色器语言换血:Bevy 正式拥抱 WESL——WGSL 的标准化扩展,带模块、import、条件编译这些特性,直接淘汰了 Bevy 自研的 WGSL 方言。官方说法是「对更大着色器生态和对自己都更好」,资源可以pool到语言改进和 IDE 工具上(wgsl-analyzer LSP)。老的自定义着色器要改名 .wesl,纯 WGSL 不受影响。此外 Mesh Shaders 首次接入管线缓存,可以在 GPU 上直接生成几何(程序化草、体素、粒子这些),Sprite 和 2D 材质也能写自定义 shader 了。

场景系统 BSN 上一个大版本落地,这次补语法。@ 前缀统一标记、template_value 包装器全部移除、枚举不再需要 VariantDefaults、列表改用 -- 分隔实体。一句话总结:去掉了大量语法噪音,作者说「和同类标记语言竞争的空间里,这个数据很有竞争力」。另一个补的拼图是 Ready 事件——场景内所有后代都 spawn 完成后才触发,能可靠地在完整场景上跑逻辑,也方便把 glTF 等场景表达叠在 Bevy 之上。

UI 工具包 Feathers 一口气加了 Color Input、可滚动的 List View、Dropdown、Lazy Menu,Number Input 支持拖拽/scrub,还有 headless Tab(自带视觉的 UI 逻辑)。新增 Contextual Theming——主题变量可以随父实体变化,对话框里的 widget 和普通面板颜色能不同,设计上对齐 MUI、Radix 那套 web 工具包。Bevy UI 也支持 em/rem 单位了,默认字号从 px(20) 改成 rem(1),做无障碍缩放更容易。

几个值得注意的工程向改进。Schedule Randomization:调度的系统顺序此前是「确定性但任意」的,改了一点图就可能悄悄把顺序搞坏,这次可以塞个 seed 随机化顺序做 property testing,把隐藏的顺序依赖暴露出来。Catching Panics:之前一个 panic 直接带走整个 app,现在会转成错误交给 fallback 处理器,你可以选择记日志继续跑。批量 despawn 用新的 despawn_all 命令,10 万个实体从 3.17ms 降到 2.07ms。纹理压缩换了 ctt 后端,压成 BCn(桌面)/ASTC(移动),还能在 asset process 时自动生成完整 mipmap 链。

What's Next 里最明确的信号是 .bsn 文件格式会和 Assets as Entities 一起落地——把资源放进 ECS 的数据模型,让场景编辑器成为一切的核心。HDR 显示支持也在路上。

来源: