Shader Variant 变多前,先给构建和运行各设一道门
渲染“流量”不是 HTTP 请求,而是材质组合、variant 数量和每帧 draw call。关键字放任组合,构建时间、包体和运行时切换都会一起变重。
构建侧裁掉不可能组合
从质量档位、平台能力和实际材质收集出发生成白名单。功能互斥关系写进配置,不让每个 shader 自由组合全部关键字。裁剪规则随构建版本保存,避免问题只能在某台机器复现。
运行侧限制状态切换
按材质与 pass 排序,复用管线状态;动态功能优先使用已有变体,不在运行时临时编译未知组合。加载不到目标 variant 时使用明确的降级材质,并记录资源标识。
验证看构建物和帧捕获
比较 variant 清单、构建日志、首帧卡顿和 GPU 捕获。每次只改变一条裁剪规则,确认画面没有缺失效果。没有目标平台记录,不宣称固定比例收益。
管线防线的本质,是让可出现的组合有限。可数、可查,才有优化空间。