Files
XCEngine/docs/api/XCEngine/Rendering/Execution/Execution.md

40 lines
1.6 KiB
Markdown

# Execution
**命名空间**: `XCEngine::Rendering`
**类型**: `submodule`
**头文件目录**: `engine/include/XCEngine/Rendering/Execution/`
**描述**: Rendering 执行层,负责把已经规划好的 `CameraRenderRequest` 真正跑过 scene extraction、主场景管线、fullscreen 阶段与注入式 pass 序列。
## 概览
`Execution` 和 [Planning](../Planning/Planning.md) 的分工是当前渲染架构里最重要的边界之一:
- `Planning` 决定这帧有哪些 request、它们的排序、clear 规则和基础 surface。
- `Execution` 决定单个 request 以什么阶段顺序被真正执行。
这种拆法很接近商业引擎里常见的 camera render loop 设计。好处是 camera 选择、编辑器附加阶段、post-process 链和主管线执行不会揉成一个难以维护的大类。
## 当前模块内容
- [CameraRenderer](CameraRenderer/CameraRenderer.md)
单个 `CameraRenderRequest` 的执行器。
- [SceneRenderer](SceneRenderer/SceneRenderer.md)
场景级执行入口,负责把 planner 产出的 request 进一步补全成可执行链,并调度 `CameraRenderer`
## 当前职责
- 执行 `PreScenePasses -> ShadowCaster -> DepthOnly -> MainScene -> PostProcess -> FinalOutput -> ObjectId -> PostScenePasses -> OverlayPasses`
- 在真正提交前调用 [Extraction](../Extraction/Extraction.md) 生成 `RenderSceneData`
- 管理 fullscreen pass 需要的中间 surface cache
- 保持单 request 执行和多 request 编排之间的职责边界清晰
## 相关文档
- [Rendering](../Rendering.md)
- [Planning](../Planning/Planning.md)
- [Extraction](../Extraction/Extraction.md)
- [FrameData](../FrameData/FrameData.md)