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

1.2 KiB
Raw Blame History

ShaderPassMatchesBuiltinPass

命名空间: XCEngine::Rendering

类型: function

头文件: XCEngine/Rendering/Builtin/BuiltinPassMetadataUtils.h

签名

bool ShaderPassMatchesBuiltinPass(
    const Resources::ShaderPass& shaderPass,
    BuiltinMaterialPass pass);

作用

判断一个 shader pass 的显式元数据是否匹配目标 builtin pass。

当前实现行为

  1. 如果 shaderPass.name 非空且不等于 Default,就把它当成显式元数据,并要求它必须匹配目标 pass。
  2. 再遍历 shaderPass.tags;对每个名字为 LightMode 的 tag同样要求其值必须匹配目标 pass。
  3. 只要出现过至少一处显式 metadata 且全部匹配,返回 true
  4. 如果完全没有显式 metadata则返回 false

当前语义

  • 这条 helper 不提供“没有 metadata 时默认 ForwardLit”的兜底那个兜底属于 MatchesBuiltinPass 的更高层策略。
  • 名称和 LightMode 同时存在时,两者都必须匹配同一个目标 pass。

相关文档