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

1.3 KiB
Raw Blame History

ApplyMaterialRenderState

命名空间: XCEngine::Rendering

类型: function

头文件: XCEngine/Rendering/Materials/RenderMaterialStateUtils.h

签名

void ApplyMaterialRenderState(
    const Resources::Material* material,
    RHI::GraphicsPipelineDesc& pipelineDesc);

作用

把材质的栅格化、混合和深度状态一次性写入 GraphicsPipelineDesc

当前实现行为

当前实现本身不加额外策略,只是统一调用三组状态构建函数:

pipelineDesc.rasterizerState = BuildRasterizerState(material);
pipelineDesc.blendState = BuildBlendState(material);
pipelineDesc.depthStencilState = BuildDepthStencilState(material);

关键语义

  • 这里不会处理 render queue也不会决定材质属于哪个 builtin pass。
  • 它只关心 MaterialRenderState 如何影响最终图形管线状态。
  • 这些 MaterialRenderState 字段通常来自 MaterialLoader 解析的 renderState JSON / artifact 数据。

适用场景

  • builtin forward pipeline 组装 draw call 或 PSO 描述时
  • 需要用统一规则把材质状态映射到后端无关 RHI 结构时

相关文档