42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
|
|
# 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)
|