帮你把关Shader变体问题!UWA本地资源检测又更新!
- 作者:admin
- /
- 时间:2020年12月09日
- /
- 浏览:3254 次
- /
- 分类:万象更新
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%的对手!》