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

news/2024/7/10 4:04:12 标签: shader, 变体, 资源, 粒子, 优化

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%的对手!》


http://www.niftyadmin.cn/n/1030823.html

相关文章

Prefab优化:预制体中的各种细节选择

在上一期《Shader:优化破解变体的“影分身”之术》中,我们针对UWA本地资源检测最新的Shader Analyzer功能所涉及到的新规则和相关知识点进行了讲解。这些看似细小的知识点,很容易在大家的开发和学习过程中被疏忽,而长期的问题积累…

使用ScriptableObject代替部分配置表的坑点

1)使用ScriptableObject代替部分配置表的坑点 ​2)加载配置内存过大问题 3)URP的UI在Android模型器下比在真机上暗 4)Unity在Windows上第一次运行Play启动很慢 5)如何正确卸载UnityWebRequest下载的图片资源 这是第231…

AssetBundle中加载SpriteAtlas图集之后卸载异常

1)AssetBundle中加载SpriteAtlas图集之后卸载异常 ​2)Shader相关问题 3)如何监听GameObject的localScale改变 4)项目中大量的字节文件的合并和热更新方案 5)一个关于相机的几何数学问题 这是第232篇UWA技术知识分享的…

特效优化:发现绚丽背后的质朴

在上一期《Prefab优化:预制体中的各种细节选择》中,我们针对UWA本地资源检测中和预制体相关的规则所涉及到的知识点进行了讲解。这些看似细小的知识点,很容易在大家的开发和学习过程中被疏忽,而长期的问题积累最终都会反映到项目的…

带多个Submeshes模型合并,显示​异常

1)多个Submeshes模型合并,显示异常 ​2)Addressable如何删除旧资源 3)对NGUI字体错乱的解决方案 4)GLSL link error: L0010 Uniform _Color differ on precision 5)iOS键盘上的输入框提示内容如何去掉 这是…

特效优化2:效果与性能的博弈

在上一期《特效优化:发现绚丽背后的质朴》中,我们主要针对UWA本地资源检测中和特效相关的知识点做了讲解。这些看似细小的知识点,很容易在大家的开发和学习过程中被疏忽,而长期的问题积累最终都会反映到项目的性能表现上。为此&am…

符号表之四:符号表的链表实现和哈希表实现

介绍了符号表的组织形式有线性组织(重插入简洁性,轻索引性能),排序组织(插入操作耗时,重索引性能),哈希表映射(以空间换取时间)。那么如下便介绍了符号表的链…

2020年度大赏 | UWA问答精选

UWA每周推送的知识型栏目《厚积薄发 | 技术分享》已经伴随大家走过了252个工作周。精选了2020年十大精彩问答分享给大家,期待2021年UWA问答继续有您的陪伴。 UWA 问答社区:answer.uwa4d.com UWA QQ群2:793972859(原群已满员&…