Files
XCEngine/docs/api/XCEngine/Rendering/Materials/RenderMaterialStateUtils/RenderMaterialStateUtils.md

42 lines
1.6 KiB
Markdown
Raw Normal View History

# RenderMaterialStateUtils
**命名空间**: `XCEngine::Rendering`
**类型**: `utility header`
**头文件**: `XCEngine/Rendering/Materials/RenderMaterialStateUtils.h`
**描述**: 渲染材质状态转换辅助头,负责把 `MaterialRenderState` 翻译成 RHI 栅格化、混合和深度模板状态,并提供哈希辅助。
## 当前公开能力
- `ToRHICullMode(...)`
- `ToRHIComparisonFunc(...)`
- `ToRHIBlendFactor(...)`
- `ToRHIBlendOp(...)`
- `BuildRasterizerState(...)`
- `BuildBlendState(...)`
- `BuildDepthStencilState(...)`
- `ApplyMaterialRenderState(...)`
- `MaterialRenderStateHash`
## 当前语义
- `BuildRasterizerState(...)` 负责填充剔除模式和通用 rasterizer 默认值。
- `BuildBlendState(...)` 负责把材质的颜色 / alpha 混合参数映射到 `RHI::BlendDesc`
- `BuildDepthStencilState(...)` 负责把深度测试、深度写入和比较函数映射到 `RHI::DepthStencilStateDesc`
- `ApplyMaterialRenderState(...)` 用一条 helper 把三类状态同时写入 `RHI::GraphicsPipelineDesc`
- `MaterialRenderStateHash` 用于 pipeline-state 缓存键。
## 当前调用链
- `BuiltinForwardPipeline` 用它构建每个材质对应的 `GraphicsPipelineDesc`
- depth-style / object-id 之外的主场景绘制路径都依赖这层 material-state 映射。
## 相关文档
- [Materials](../Materials.md)
- [RenderMaterialResolve](../RenderMaterialResolve/RenderMaterialResolve.md)
- [BuiltinForwardPipeline](../../Pipelines/BuiltinForwardPipeline/BuiltinForwardPipeline.md)
- [RenderMaterialUtility](../../RenderMaterialUtility/RenderMaterialUtility.md)