2.2 KiB
2.2 KiB
Pipelines
命名空间: XCEngine::Rendering::Pipelines
类型: submodule
描述: 提供当前公开的具体渲染管线实现,以及与之配套的 pipeline asset 工厂。
概览
Rendering::Pipelines 子命名空间承载的不是“渲染总流程”,而是“真正把场景数据画到目标表面的 runtime pipeline 实现”。
当前这层已经明确分成两类对象:
- runtime pipeline 负责解析 shader pass、构建 pipeline layout、缓存 descriptor set,并发出 draw call。
- pipeline asset
负责决定该创建哪一条 runtime pipeline,并把实例交给
CameraRenderer。
这和商业引擎里常见的 RenderPipelineAsset -> RenderPipeline 分层是一致的。当前功能还不算多,但架构边界已经建立起来了。
当前公开类型
- BuiltinForwardPipeline
BuiltinForwardPipeline.h- 当前默认的主场景前向管线实现。
- BuiltinForwardPipelineAsset
BuiltinForwardPipeline.h- 当前默认的 concrete
RenderPipelineAsset,负责创建新的BuiltinForwardPipeline。
默认接线关系
当前默认路径是:
CameraRenderer拿到BuiltinForwardPipelineAsset- asset 创建
BuiltinForwardPipeline - runtime pipeline 执行主场景绘制
这样做的价值在于:
CameraRenderer不需要知道 builtin forward 的内部细节- future custom pipeline 的扩展位已经存在
- pipeline 工厂和 pipeline 实例的生命周期可以分开管理
当前边界
- 目前公开的 concrete runtime pipeline 仍然只有 builtin forward 一条
BuiltinForwardPipelineAsset还只是 C++ 工厂对象,不是项目资源数据库里的 renderer asset- deferred、多主管线配置、render graph 和复杂 frame orchestration 还没有在这一层落地