Files
XCEngine/docs/api/XCEngine/Rendering/RenderMaterialUtility/BuildLegacyBuiltinObjectIdPassResourceBindings.md

45 lines
1.3 KiB
Markdown
Raw Normal View History

# BuildLegacyBuiltinObjectIdPassResourceBindings
**命名空间**: `XCEngine::Rendering`
**类型**: `function`
**头文件**: `XCEngine/Rendering/RenderMaterialUtility.h`
## 签名
```cpp
Containers::Array<Resources::ShaderResourceBindingDesc> BuildLegacyBuiltinObjectIdPassResourceBindings();
```
## 作用
构造 builtin object-id 路径在没有显式 `resources` 声明时使用的 legacy fallback 绑定列表。
## 当前实现行为
当前固定只返回一条绑定:
| `set` | `binding` | `semantic` | `type` |
|------|------|------|------|
| `0` | `0` | `PerObject` | `ConstantBuffer` |
## 当前使用位置
- [BuiltinObjectIdPass](../Passes/BuiltinObjectIdPass/BuiltinObjectIdPass.md) 在 shader pass 没有显式资源声明时,会先回退到这份绑定列表。
- 后续同样交给 [TryBuildBuiltinPassResourceBindingPlan](TryBuildBuiltinPassResourceBindingPlan.md) 统一解析。
## 测试覆盖
`tests/Rendering/unit/test_builtin_forward_pipeline.cpp` 当前验证了:
- 返回值只有一条绑定
- 解析后的 plan 只包含 `PerObject`
- `firstDescriptorSet == 0``descriptorSetCount == 1`
## 相关文档
- [TryBuildBuiltinPassResourceBindingPlan](TryBuildBuiltinPassResourceBindingPlan.md)
- [BuiltinObjectIdPass](../Passes/BuiltinObjectIdPass/BuiltinObjectIdPass.md)
- [RenderMaterialUtility](RenderMaterialUtility.md)