2026-04-04 17:35:23 +08:00
|
|
|
|
# ShaderPassHasExplicitBuiltinMetadata
|
|
|
|
|
|
|
|
|
|
|
|
**命名空间**: `XCEngine::Rendering`
|
|
|
|
|
|
|
|
|
|
|
|
**类型**: `function`
|
|
|
|
|
|
|
2026-04-07 00:17:51 +08:00
|
|
|
|
**头文件**: `XCEngine/Rendering/Builtin/BuiltinPassMetadataUtils.h`
|
2026-04-04 17:35:23 +08:00
|
|
|
|
|
|
|
|
|
|
## 签名
|
|
|
|
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
|
|
bool ShaderPassHasExplicitBuiltinMetadata(const Resources::ShaderPass& shaderPass);
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 作用
|
|
|
|
|
|
|
|
|
|
|
|
判断一个 `ShaderPass` 是否显式声明了 builtin pass 元数据。
|
|
|
|
|
|
|
|
|
|
|
|
## 当前实现行为
|
|
|
|
|
|
|
|
|
|
|
|
满足以下任一条件就返回 `true`:
|
|
|
|
|
|
|
|
|
|
|
|
- `shaderPass.name` 非空且不等于 `Default`
|
|
|
|
|
|
- `shaderPass.tags` 里存在名字为 `LightMode` 的 tag
|
|
|
|
|
|
|
|
|
|
|
|
否则返回 `false`。
|
|
|
|
|
|
|
|
|
|
|
|
## 当前语义
|
|
|
|
|
|
|
|
|
|
|
|
- 这条 helper 的主要作用是区分“显式声明了其它 pass”与“完全没有元数据,应继续走 `ForwardLit` 默认回退”。
|
|
|
|
|
|
- [MatchesBuiltinPass](MatchesBuiltinPass.md) 会在 shader 级遍历失败后用它决定是否关闭隐式 forward fallback。
|
|
|
|
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
|
|
|
|
|
- [ShaderPassMatchesBuiltinPass](ShaderPassMatchesBuiltinPass.md)
|
|
|
|
|
|
- [MatchesBuiltinPass](MatchesBuiltinPass.md)
|
|
|
|
|
|
- [RenderMaterialUtility](RenderMaterialUtility.md)
|