Type: concept
Confidence: 0.85
Created: 2026-04-16
Updated: 2026-04-16
Tags: 游戏开发场景管理图形学架构

场景树

概述

场景树(Scene Graph)以树结构管理游戏/UI对象的父子层级,核心价值是通过父子关系自动传播 Local → World 坐标变换,适合层级明确的对象和UI系统。

关键内容

  1. 核心三件事:父子关系表达(AddChild/SetParent);局部变换→世界变换传播(WorldMatrix = ParentWorld * Local);递归更新(DFS遍历 UpdateWorldRecursive)
  2. 关键实现细节:SetParent 时可选 keepWorldTransform 以避免对象跳位(新local = inverse(newParentWorld) * oldWorld);用 unique_ptr 管理子节点所有权避免内存混乱;dirty flag 优化避免全量重算;节点删除默认连子树一起删
  3. 与 ECS 的关系:非二选一,常见混合方案——ECS 存储数据和系统,Transform 组件中保存 parent/children,层级关系仍为树形;大量粒子/子弹等批处理对象不适合场景树,改用 ECS 数组或 Job System
  4. 更新阶段划分:PreUpdate → Update → LateUpdate → TransformPropagation → Render;场景树负责组织世界,渲染器负责绘制(不要耦合)

来源

相关