Skip to content

Bevy Solari:实验性光线追踪

Bevy 0.19 引入了一个令人兴奋的实验性模块——bevy_solari。它是一组用于实时光线追踪照明的插件,目标是在 Bevy 中实现实时的直接光照和间接光照。这是 Bevy 向下一代渲染迈出的探索性一步。

它是什么

bevy_solari 提供了三个核心组件:

  • SolariLighting——实时光线追踪直接光照与间接光照。这是 Solari 的核心插件,负责在每一帧中利用 GPU 的光线追踪能力计算全局照明。
  • RaytracingScenePlugin——负责构建 BLAS(Bottom-Level Acceleration Structure,底层加速结构)。光线追踪需要把场景几何体组织成加速结构,这样 GPU 才能高效地进行光线与三角形的求交测试。
  • PathtracingPlugin——离线路径追踪器,用于验证和调试。它不是实时运行的,而是逐步累积采样来生成参考图像,帮助开发者确认实时渲染结果的正确性。

如何启用

bevy_solari 是 feature-gated 的——你需要在 Cargo.toml 中显式启用 bevy_solari feature 才能使用它。启用后,通过 SolariPlugins 插件组将它添加到应用中。场景中的实体需要添加 RaytracingMesh3d 组件和 MeshMaterial3d::<StandardMaterial> 组件,才能被光线追踪管线识别。

需要注意的是,Solari 对 GPU 有硬性要求:它依赖 EXPERIMENTAL_RAY_QUERY 等 wgpu 特性,这意味着只有支持硬件光线追踪的 GPU(如 NVIDIA RTX 系列和 AMD RDNA 2+)才能运行。在不支持的硬件上,相关功能会静默降级。

当前状态:实验性

bevy_solari 目前标记为实验性(experimental),尚未达到生产可用的状态。API 可能在后续版本中发生破坏性变更,渲染效果和性能也在持续优化中。它更像是 Bevy 团队对未来渲染能力的一次技术预演,而不是你现在就应该在正式项目中依赖的功能。

尽管如此,Solari 的存在证明了 Bevy 正在认真对待高品质渲染。如果你对光线追踪感兴趣,可以在本地硬件条件允许的情况下尝试运行官方的 solari 示例,感受一下实时全局照明的效果。对于大多数项目来说,当前阶段建议继续使用 StandardMaterial 配合传统的光照方案。