2.2 KiB
2.2 KiB
BuiltinDepthStylePassBase
命名空间: XCEngine::Rendering::Passes
类型: class
头文件: XCEngine/Rendering/Passes/BuiltinDepthStylePassBase.h
描述: BuiltinDepthOnlyPass 与 BuiltinShadowCasterPass 共享的深度风格 pass 基类,负责懒初始化 shader / pipeline / per-object descriptor,并按 RenderPass 约定执行一次只写深度的场景重绘。
概览
BuiltinDepthStylePassBase 把两类 pass 的公共逻辑集中在一起:
- 按
BuiltinMaterialPass解析可兼容的 shader pass。 - 复用 RenderResourceCache 上传 mesh GPU 副本。
- 只接受“单个
PerObject常量缓冲”这一类资源绑定计划。 - 在 Execute 中统一处理
RenderSurface检查、viewport/scissor、清屏、绘制循环和颜色附件状态切换。 - 虽然是“深度风格” pass,当前执行框架仍要求
RenderSurface同时提供colorAttachments[0]与depthAttachment,并沿用颜色 clear / transition 路径。
派生类当前只负责决定:
- 构造时注入哪种 builtin shader 路径。
GetName()返回什么名字。- 是否通过 ShouldRenderVisibleItem 进一步过滤可见物体。
公开与受保护方法
| 成员 | 说明 |
|---|---|
| Constructor | 受保护构造函数,保存 pass 类型与 builtin shader 路径。 |
| Destructor | 析构时调用 Shutdown。 |
| BuildCommonInputLayout | 返回深度风格 pass 共用的 StaticMeshVertex 输入布局。 |
| Initialize | 懒初始化资源。 |
| Shutdown | 释放缓存的 shader、pipeline、descriptor 和 mesh GPU 副本。 |
| Execute | 执行一次深度风格场景重绘。 |
| ShouldRenderVisibleItem | 派生类可覆写的可见物体过滤点。 |