产品与解决方案 帮你把关 Shader 变体问题!UWA 本地资源检测又更新!

侑虎科技 · 2020年12月16日 · 1016 次阅读

UWA 本地资源检测最近动作频频,应广大用户要求,我们在最新的 1.2.0 版本中增加了 Shader Analyzer 功能模块,同时还新增了若干条资源相关规则,下文我们就来详细说明。




一、新增 Shader Analyzer 功能模块

Shader Analyzer 模块的主要功能有两点:

1.项目 Shader 脚本扫描分析(支持任意版本的 Unity)
扫描项目中的 Shader 脚本,分别统计 shader_feature 和 multi_compiler 类的局部和全局关键字个数,根据项目中 Material 上开启的关键字情况计算可能生成的变体数。
该功能对应的规则有 2 条:

  • 项目中可能生成变体数过多的 Shader
  • 项目中全局关键字过多的 Shader

2.模拟 Build 变体分析(支持 Unity 2018.2 及以上的版本)
自动按照用户的配置进行模拟 build,统计 build 出来的 Shader 名称、变体数和关键字个数。该功能对应的规则为:

  • Build 后:生成变体数过多的 Shader

需要说明的是,自动 Build 功能会默认按照用户当前的配置自动进行,并且 Shader Analyzer 的 Build 操作是单纯用于统计 Shader 变体信息的 “模拟 Build”,为了加快统计效率,省去了 Shader 脚本编译的过程,Build 结果不可实际使用。

若研发团队想自定义 Build 设置,也可在本地资源检测插件包中的脚本 UwaProjScanLauncher.cs 中修改以下函数。Shader Analyzer 会按照该函数设置的方案进行模拟 Build。

此外,本地资源检测的旧规则 “纹理采样数过多的 Shader” 被纳入 Shader Analyzer 模块。


二、新增三条检测规则

名称及描述如下:
1、使用了 Standard Shader 的材质球
Standard Shader 可能生成非常多的变体,虽然 Shader 脚本本身占用的内存小,但其加载耗时会非常高,ShaderLab 内存占用也比较高,不建议大家直接在项目中使用。

2、开启各向异性过滤的纹理
对纹理进行各向异性过滤对于地面等物体的显示会有增益,但同时会带来较高的性能开销,建议排查。

3、开启 Prewarm 的粒子系统
粒子系统的 Prewarm 操作会在使用时的第一帧中造成相对集中的 CPU 耗时,很可能会造成运行时局部卡顿,建议考虑是否确实需要开启该选项,如果可以不用则将其关闭。

建议大家及时更新到最新版本(1.2.0),体验新功能喔!对于这些检测的知识点补充,我们将在日后的微信文章中详述,欢迎大家关注。已发布的检测规则知识点,我们也将持续更新。

《动画优化:关于 AnimationClip 的三两事》
《材质优化:如何正确处理纹理和材质的关系》
《纹理优化:让你的纹理也 “瘦” 下来》
《纹理优化:不仅仅是一张图片那么简单》

万行代码屹立不倒,全靠基础掌握得好!

性能黑榜相关阅读

《那些年给性能埋过的坑,你跳了吗?》
《那些年给性能埋过的坑,你跳了吗?(第二弹)》
《掌握了这些规则,你已经战胜了 80% 的对手!》

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册