45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
|
|
# 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)
|