Skybox

Bevy 中的 Skybox 组件,用于为 3D 场景添加天空盒渲染。挂载在 Camera 实体上,通过环境贴图在场景背景渲染天空纹理。

关键事实

  • 所在 crate: 最初在 bevy_pbr,PR #22682 后迁移至 bevy_light
  • 挂载目标: Camera 实体
  • 渲染方式: 通过手动提取(manual extraction)从主世界提取到渲染世界(render world),PR #22682 后因 orphan rule 限制不再使用 ExtractComponentPlugin
  • 0.19 相关 PR: #24389(修复组件移除后渲染世界残留)

迁移历史

事件PR日期说明
从 bevy_pbr 迁至 bevy_light#22682前期因 orphan rule 限制,采掘逻辑从 ExtractComponentPlugin 改为手动提取
修复渲染世界清理#243892026-05-22迁移时遗漏 SyncComponentPlugin 注册,导致移除 Skybox 后渲染残留

已知问题(0.19 已修复)

PR #22682 迁移 Skybox 至 bevy_light 时,因 orphan rule 限制改为手动采掘逻辑,但遗漏了 SyncComponentPlugin<Skybox> 的手动注册。这导致以下行为:

  • 症状: 移除 Camera 上的 Skybox 组件后,天空盒在渲染世界中继续存在,视觉上不会消失
  • 影响范围: 所有使用 Skybox 组件的 Bevy 应用
  • 复现方式: anisotropy 示例中按 Space 从环境贴图模式切回方向光模式,天空盒不消失
  • 修复: PR #24389 手动注册 SyncComponentPlugin<Skybox>,单行修复,合并于 2026-05-22

相关页面