4.7 KiB
4.7 KiB
Renderer阶段收口说明
1. 目标
本文用于正式收口当前 Renderer 阶段,明确:
- 本阶段已经完成什么
- 哪些能力已经进入稳定边界
- 哪些事项明确延期到下一阶段
- 后续开发不应再继续把新功能塞回本阶段
当前收口日期:2026-04-02
2. 本阶段已完成能力
2.1 Renderer 主体边界
当前已经形成稳定分层:
RHI负责后端抽象与资源/命令执行Rendering负责场景提取、camera request、pipeline、builtin passEditor负责 viewport 宿主、输入、overlay、编辑态请求装配
关键点:
CameraRenderer已经承担统一 camera 渲染执行职责SceneRenderer已经承担 scene -> camera request 的组织职责- editor scene viewport 不再自己拼装 renderer 执行逻辑
2.2 内建后处理边界
本阶段内建编辑态后处理已经收敛为 renderer 自己的通用请求能力:
BuiltinPostProcessRequestBuiltinPostProcessPassPlanBuiltinPostProcessPassSequenceBuilder
这意味着:
- renderer 公共接口不再暴露
SceneView专有命名 - grid / selection outline / debug mask 已归入 renderer 侧 builtin post-process 能力
- editor 只负责“是否启用、传什么数据、把哪些 render target 绑定进 request”
2.3 Editor Scene Viewport 接入
当前 editor scene viewport 已具备:
- renderer 离屏输出接入
- object-id 帧输出接入
- CPU picking 回退链路
- selection outline
- infinite grid
- built-in post-process 请求装配
其中:
- grid 和 outline 仍然服务于 editor scene viewport
- 但执行入口已经下沉到 renderer
- editor 只保留宿主与编辑器语义
2.4 自动化测试体系
当前已经具备稳定回归闸门:
tests/Rendering/unittests/Rendering/integrationtests/Editorrendering_phase_regression
当前阶段收口依赖的关键验证包括:
- renderer unit tests
- editor tests
- 全 rendering integration 场景
XCEditorsmoke launch
3. 本阶段稳定边界
以下内容从现在开始视为本阶段稳定边界:
- renderer 公共请求以
CameraRenderRequest为核心,而不是 editor 自定义执行入口。 - editor scene viewport 的内建后处理数据由 editor 组装,但 pass 执行由 renderer 负责。
- builtin post-process 的公共语义是 renderer 语义,不是
SceneView语义。 - rendering regression 失败时,优先视为阶段回归,而不是“可接受的小问题”。
4. 本阶段明确延期项
以下事项明确不再继续塞入本阶段,转入下一阶段:
4.1 真正的多 pass / render graph 框架
当前已有 pass sequence 与 builtin post-process,但这还不是完整的 renderer 多 pass 架构。
延期内容:
- renderer 级 render graph
- 更正式的 pass phase / event 模型
- 更通用的资源读写依赖管理
4.2 GPU Object ID 正式方案
当前 editor selection 相关链路已经能工作,但还不是最终方案。
延期内容:
- renderer 内正式 object-id pass/attachment 规范化
- editor picking 从 CPU fallback 继续向 GPU object-id 正式方案收敛
- editor/game shared picking contract
4.3 Gizmo 最终渲染体系
当前 gizmo 与 scene viewport 已经能工作,但不属于本阶段 renderer 收口范围。
延期内容:
- 更成熟的 gizmo 渲染架构
- 更统一的 gizmo draw pass / picking / overlay 体系
- 与后续 renderer 多 pass 的正式对接
4.4 C# SRP 对接
当前 renderer 的职责边界已经为 SRP 预留好了方向,但本阶段不做真正脚本化 pipeline 落地。
延期内容:
RenderPipelineAsset/RenderPipeline脚本绑定ScriptableRenderContextCommandBuffer- renderer 与脚本侧的正式桥接层
5. 阶段退出标准
当前阶段只有在以下条件全部满足时才视为完成:
- renderer/editor 边界中不再存在新的
SceneView语义向 renderer 公共接口泄漏。 - scene viewport 的 builtin post-process 组合链路具备稳定自动化回归覆盖。
rendering_phase_regression保持通过。- 新功能开发转入下一阶段,不再回头污染本阶段边界。
截至本文落地时,这些退出标准已经满足。
6. 下一阶段入口
Renderer 下一阶段应当正式转向:
- renderer 内更完整的多 pass / phase 模型
- editor/game shared render feature 契约
- object-id 正式化
- 为后续 C# SRP 搭建真正可扩展的 renderer 接口
一句话总结:
- 当前阶段已经把“Renderer 从 RHI 之上独立出来,并接通 editor scene viewport”这件事做完
- 下一阶段不该继续修补这一层,而应开始建设更正式的 renderer 扩展框架