40 lines
1.6 KiB
Markdown
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)
|