7

帮你把关Shader变体问题!UWA本地资源检测又更新!

 3 years ago
source link: https://blog.uwa4d.com/archives/UWA_Pipeline28.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
帮你把关Shader变体问题!UWA本地资源检测又更新!

帮你把关Shader变体问题!UWA本地资源检测又更新!

  • 作者:admin
  • 时间:12月9日
  • 浏览:258 次
  • 分类:万象更新

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

1.png

一、新增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。

2.png

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

二、新增三条检测规则

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

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

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

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

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

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

性能黑榜相关阅读

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK