Files
XCEngine/docs/api/XCEngine/Rendering/RenderMaterialUtility/MatchesBuiltinPass.md
2026-03-29 01:36:53 +08:00

1.1 KiB
Raw Blame History

MatchesBuiltinPass

命名空间: XCEngine::Rendering

类型: function

头文件: XCEngine/Rendering/RenderMaterialUtility.h

签名

bool MatchesBuiltinPass(const Resources::Material* material, BuiltinMaterialPass pass);

作用

判断材质是否匹配当前内建渲染通道。

当前实现行为

当前只对 BuiltinMaterialPass::Forward 做了明确逻辑:

  • 如果 material == nullptr,直接返回 true
  • 先检查 material->GetShaderPass()
  • 再检查 material->GetTag("LightMode")
  • 这两个字段只要非空且不属于 forward / forwardbase / forwardlit / forwardonly,就返回 false
  • 两边都通过时返回 true

设计含义

这是一套偏宽松的前向通道匹配策略。它允许:

  • 完全没写 pass 元数据的简单材质先跑起来。
  • 使用不同命名习惯但语义接近的前向 pass 被统一接纳。

代价是当前还谈不上完整的多 pass 调度系统更接近“builtin forward pipeline 的白名单过滤器”。

相关文档