材质复杂度:像素的账单
材质决定"每个像素花多少算力"。高分辨率 × 复杂材质是 GPU 最常见的组合杀手。
材质复杂度从哪来
| 来源 | 说明 |
|---|---|
| 数学节点多 | Sin / Pow / Noise 等逐像素计算 |
| 纹理采样多 | 4K × 5 张贴图的材质很常见 |
| 分支逻辑(Static Switch 之外) | 动态 if / Switch |
| 半透明渲染 | 排序 + 无 EarlyZ 裁剪 |
| 深度复杂度(像素被覆盖多次) | 高的不透明度重叠 |
定位材质热点
- Shader Complexity 视图模式(Buffer Visualization):视口里红色区域 = 贵像素;
- 材质分析器:列出场景里最贵的材质与实例树;
- Nanite 网格的材质原则不同:因为 Nanite 让三角形变得便宜,材质反而成为主要瓶颈——复杂度重心从几何转向着色。
优化的层次
| 层次 | 手段 |
|---|---|
| 数据 | 纹理降到够用尺寸 / 压缩格式 / 通道合并(ORM) |
| 算法 | 复杂表达式用 LUT / 预烘焙 / 顶点色替代 |
| 结构 | 简化材质给小人 / LOD 材质(低画质档用轻薄材质) |
| 管线 | Shader Complexity 视图监控,CI 里出热力图 |
一个经典误判:材质里一张 4K 法线 vs 四张 1K——像素采样成本看的是覆盖面积 × 张数,不是分辨率本身。视口里占比大的材质(地面、天空)是优化重心,占比小的(戒指、道具)不值得花时间。
