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

5.2 KiB
Raw Blame History

Rendering

命名空间: XCEngine::Rendering

类型: module

描述: 当前场景渲染主链路所在模块,覆盖 request 规划、场景提取、主管线执行、object-id 输出,以及调用方注入的 post / overlay pass。

概览

当前 Rendering 模块已经不是简单的“scene -> pipeline”两段式结构而是一条更完整的提交链

  1. SceneRenderer 规划并排序 CameraRenderRequest
  2. CameraRenderer 执行单个 request。
  3. RenderSceneExtractor 生成 RenderSceneData
  4. RenderPipelineAsset 决定当前主管线实例如何创建。
  5. RenderPipeline 执行主场景绘制。
  6. ObjectIdPassPasses 子模块补上 object-id、grid、outline 等附加阶段。

默认主链路当前是:

当前主流程

对一台相机的大致流程是:

  1. SceneRenderer 生成 CameraRenderRequest
  2. CameraRenderer 校验 request 与 render-area。
  3. RenderSceneExtractor 基于相机和 render-area 提取 RenderSceneData
  4. RenderPipeline 绘制主颜色目标。
  5. 如有需要,执行 object-id pass。
  6. 执行 postScenePassesoverlayPasses

Scene View 里的无限网格、选中轮廓和编辑器 overlay当前都不是 CameraRenderer 内部动态规划出来的,而是先在 Editor 层组装成 request plan再通过 postScenePasses / overlayPasses 接入这条主链。

材质与 shader 语义如何进入主链路

RenderMaterialUtility 当前负责把材质里的:

  • shaderPass
  • LightMode
  • renderQueue
  • renderState

翻译成渲染链路可消费的规则。

在默认 builtin forward 路径里shader pass 的 resources 声明还会进一步参与 PassResourceLayout 构建,因为 BuiltinForwardPipeline 已经开始按资源契约生成 descriptor set layout。

当前基础设施分层

更底层的基础协议由这些页面补齐:

它们分别负责 request 规划、排序规则、scene helper、通用 pass 生命周期和 object-id 编解码约定。

当前实现边界

  • 默认主路径仍然是 builtin forward不是完整 SRP 或 render graph。
  • RenderPipelineAsset 已经接入默认主链路,但当前还不是项目资源数据库里的完整 renderer asset。
  • 多相机排序由 SceneRenderer 处理,CameraRenderer 只执行单个 request。
  • 编辑器特有的 grid / outline / overlay 组装逻辑不在 Rendering 模块里完成,而是在 Editor 层先转成 RenderPassSequence

头文件索引

相关指南

相关文档