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 改为手动提取 |
| 修复渲染世界清理 | #24389 | 2026-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
相关页面
- sync-component-plugin — SyncComponentPlugin 同步机制概念
- bevy-rendering — Bevy 渲染系统总览
- bevy — Bevy 引擎实体总览
- bevy-game-dev-2026-05 — 2026 年 5 月引擎变更追踪