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、清屏、绘制循环和颜色附件状态切换。
|
2026-04-04 17:35:23 +08:00
|
|
|
|
- 虽然是“深度风格” 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)
|