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

45 lines
2.2 KiB
Markdown
Raw Normal View History

2026-04-04 17:00:03 +08:00
# 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](../../RenderResourceCache/RenderResourceCache.md) 上传 mesh GPU 副本。
- 只接受“单个 `PerObject` 常量缓冲”这一类资源绑定计划。
- 在 [Execute](Execute.md) 中统一处理 `RenderSurface` 检查、viewport/scissor、清屏、绘制循环和颜色附件状态切换。
- 虽然是“深度风格” pass当前执行框架仍要求 `RenderSurface` 同时提供 `colorAttachments[0]``depthAttachment`,并沿用颜色 clear / transition 路径。
2026-04-04 17:00:03 +08:00
派生类当前只负责决定:
- 构造时注入哪种 builtin shader 路径。
- `GetName()` 返回什么名字。
- 是否通过 [ShouldRenderVisibleItem](ShouldRenderVisibleItem.md) 进一步过滤可见物体。
## 公开与受保护方法
| 成员 | 说明 |
|------|------|
| [Constructor](Constructor.md) | 受保护构造函数,保存 pass 类型与 builtin shader 路径。 |
| [Destructor](Destructor.md) | 析构时调用 [Shutdown](Shutdown.md)。 |
| [BuildCommonInputLayout](BuildCommonInputLayout.md) | 返回深度风格 pass 共用的 `StaticMeshVertex` 输入布局。 |
| [Initialize](Initialize.md) | 懒初始化资源。 |
| [Shutdown](Shutdown.md) | 释放缓存的 shader、pipeline、descriptor 和 mesh GPU 副本。 |
| [Execute](Execute.md) | 执行一次深度风格场景重绘。 |
| [ShouldRenderVisibleItem](ShouldRenderVisibleItem.md) | 派生类可覆写的可见物体过滤点。 |
## 相关文档
- [BuiltinDepthOnlyPass](../BuiltinDepthOnlyPass/BuiltinDepthOnlyPass.md)
- [BuiltinShadowCasterPass](../BuiltinShadowCasterPass/BuiltinShadowCasterPass.md)
- [RenderPass](../../RenderPass/RenderPass.md)
- [RenderResourceCache](../../RenderResourceCache/RenderResourceCache.md)