2026-03-29 01:36:53 +08:00
|
|
|
|
# RenderMaterialUtility
|
|
|
|
|
|
|
|
|
|
|
|
**命名空间**: `XCEngine::Rendering`
|
|
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
**类型**: `compatibility topic`
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
**描述**: 旧的 `RenderMaterialUtility.h` 已经拆分;当前材质解析、builtin pass 契约和 render-state 映射分别落在 `Builtin/*` 与 `Materials/*` 目录下。
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
## 拆分结果
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
当前源码中不再存在单一的 `RenderMaterialUtility.h`。原来的职责已经拆到这些头文件:
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
- `XCEngine/Rendering/Builtin/BuiltinPassTypes.h`
|
|
|
|
|
|
- `XCEngine/Rendering/Builtin/BuiltinPassMetadataUtils.h`
|
|
|
|
|
|
- `XCEngine/Rendering/Builtin/BuiltinPassLayoutUtils.h`
|
|
|
|
|
|
- `XCEngine/Rendering/Builtin/BuiltinPassContract.h`
|
|
|
|
|
|
- `XCEngine/Rendering/Materials/RenderMaterialResolve.h`
|
|
|
|
|
|
- `XCEngine/Rendering/Materials/RenderMaterialStateUtils.h`
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
因此这页只保留为兼容入口,用来解释“原先归在 RenderMaterialUtility 名下的文档现在分别去哪了”。
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
## 当前分层
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
### Builtin pass 契约
|
2026-04-04 17:35:23 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
这些页面描述 builtin pass 名称、资源语义和 binding-plan 构建规则:
|
2026-04-02 21:29:08 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
- [BuiltinMaterialPass](BuiltinMaterialPass.md)
|
|
|
|
|
|
- [PassResourceBindingLocation](PassResourceBindingLocation.md)
|
|
|
|
|
|
- [BuiltinPassResourceSemantic](BuiltinPassResourceSemantic.md)
|
|
|
|
|
|
- [BuiltinPassResourceBindingDesc](BuiltinPassResourceBindingDesc.md)
|
|
|
|
|
|
- [BuiltinPassResourceBindingPlan](BuiltinPassResourceBindingPlan.md)
|
|
|
|
|
|
- [NormalizeBuiltinPassMetadataValue](NormalizeBuiltinPassMetadataValue.md)
|
|
|
|
|
|
- [IsForwardPassName](IsForwardPassName.md)
|
|
|
|
|
|
- [IsUnlitPassName](IsUnlitPassName.md)
|
|
|
|
|
|
- [IsDepthOnlyPassName](IsDepthOnlyPassName.md)
|
|
|
|
|
|
- [IsShadowCasterPassName](IsShadowCasterPassName.md)
|
|
|
|
|
|
- [IsObjectIdPassName](IsObjectIdPassName.md)
|
|
|
|
|
|
- [MatchesBuiltinPassName](MatchesBuiltinPassName.md)
|
|
|
|
|
|
- [ShaderPassHasExplicitBuiltinMetadata](ShaderPassHasExplicitBuiltinMetadata.md)
|
|
|
|
|
|
- [ShaderPassMatchesBuiltinPass](ShaderPassMatchesBuiltinPass.md)
|
|
|
|
|
|
- [ResolveBuiltinPassResourceSemantic](ResolveBuiltinPassResourceSemantic.md)
|
|
|
|
|
|
- [IsBuiltinPassResourceTypeCompatible](IsBuiltinPassResourceTypeCompatible.md)
|
|
|
|
|
|
- [TryBuildBuiltinPassResourceBindingPlan](TryBuildBuiltinPassResourceBindingPlan.md)
|
2026-04-02 21:29:08 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
### 材质解析
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
这些页面描述材质选择、builtin fallback 常量以及 schema-driven 常量布局:
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
- [BuiltinForwardMaterialData](BuiltinForwardMaterialData.md)
|
|
|
|
|
|
- [FindShaderPropertyBySemantic](FindShaderPropertyBySemantic.md)
|
|
|
|
|
|
- [MaterialConstantLayoutView](MaterialConstantLayoutView.md)
|
|
|
|
|
|
- [MaterialConstantPayloadView](MaterialConstantPayloadView.md)
|
|
|
|
|
|
- [ResolveBuiltinBaseColorFactor](ResolveBuiltinBaseColorFactor.md)
|
|
|
|
|
|
- [ResolveBuiltinBaseColorTexture](ResolveBuiltinBaseColorTexture.md)
|
|
|
|
|
|
- [BuildBuiltinForwardMaterialData](BuildBuiltinForwardMaterialData.md)
|
|
|
|
|
|
- [ResolveSchemaMaterialConstantPayload](ResolveSchemaMaterialConstantPayload.md)
|
|
|
|
|
|
- [ResolveMaterial](ResolveMaterial.md)
|
|
|
|
|
|
- [ResolveMaterialRenderQueue](ResolveMaterialRenderQueue.md)
|
|
|
|
|
|
- [IsTransparentRenderQueue](IsTransparentRenderQueue.md)
|
|
|
|
|
|
- [MatchesBuiltinPass](MatchesBuiltinPass.md)
|
2026-04-03 15:30:47 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
### Render-state 映射
|
2026-04-03 15:30:47 +08:00
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
这些页面描述 `MaterialRenderState` 到 RHI 状态的转换:
|
|
|
|
|
|
|
|
|
|
|
|
- [ToRHICullMode](ToRHICullMode.md)
|
|
|
|
|
|
- [ToRHIComparisonFunc](ToRHIComparisonFunc.md)
|
|
|
|
|
|
- [ToRHIBlendFactor](ToRHIBlendFactor.md)
|
|
|
|
|
|
- [ToRHIBlendOp](ToRHIBlendOp.md)
|
|
|
|
|
|
- [BuildRasterizerState](BuildRasterizerState.md)
|
2026-04-07 00:17:51 +08:00
|
|
|
|
- [BuildBlendState](BuildBlendState.md)
|
2026-04-08 16:07:03 +08:00
|
|
|
|
- [BuildDepthStencilState](BuildDepthStencilState.md)
|
|
|
|
|
|
- [ApplyMaterialRenderState](ApplyMaterialRenderState.md)
|
|
|
|
|
|
- [MaterialRenderStateHash](MaterialRenderStateHash.md)
|
|
|
|
|
|
|
|
|
|
|
|
## 当前边界
|
|
|
|
|
|
|
|
|
|
|
|
- 旧的 legacy binding builder 接口已经移除,当前文档不再保留对应页面。
|
|
|
|
|
|
- `RenderMaterialUtility` 现在更适合被理解成一个主题集合,而不是单个公开头文件。
|
|
|
|
|
|
- 需要从真实源码入口追踪时,优先看 [Builtin](../Builtin/Builtin.md) 和 [Materials](../Materials/Materials.md)。
|
2026-03-29 01:36:53 +08:00
|
|
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
|
- [Rendering](../Rendering.md)
|
2026-04-07 00:17:51 +08:00
|
|
|
|
- [Builtin](../Builtin/Builtin.md)
|
|
|
|
|
|
- [Materials](../Materials/Materials.md)
|
2026-03-29 01:36:53 +08:00
|
|
|
|
- [BuiltinForwardPipeline](../Pipelines/BuiltinForwardPipeline/BuiltinForwardPipeline.md)
|