Unity UI模块优化(2.优化渲染开销)

来源:互联网 发布:游戏数据加密算法 编辑:程序博客网 时间:2024/06/05 20:02

参考链接:https://blog.uwa4d.com/archives/1875.html,详情请点击链接查看UWA的视频解析,尊重UWA版权。本文为个人看视频学习整理笔记,同视频有删减。

降低界面的渲染开销

1.Profiling 查看当前UI渲染开销

UI报告中定位渲染开销:
(注:开了多线程渲染后,渲染的开销都藏在子线程里,基本上很难定位。所以在优化渲染开销时,都建立先切换成非多线程渲染然后再优化,优化满意后再开启多线程渲染)

1/ NGUI – Unity4.x

这里的DrawVBO和CreateVBO基本上都是UI导致的开销,所以4.x里还是比较好定位NGUI的渲染开销的。

2/ UGUI – Unity4.x

这里的DrawVBO和CreateVBO也基本上都是UI导致的开销,与上面NGUI不同的是直接在RenderForwardAlpha.Render下。

3/ NGUI – Unity5.3+

同Unity4.x的NGUI只是位置可能不一样,其他一样

4/ UGUI – Unity5.3+

如图中红圈,这个函数表示了UGUI渲染时候的开销,这里面其实也包含了CreateVBO那一部分,所以这个开销如果很高,并不仅仅因为我们的Drawcall很高,还可能因为网格重建很频繁。


2.DrawCall

1/ 前言
UI的Drawcall建议在30左右,渲染开销则会在2ms左右

UI的Drawcall对于渲染开销的影响基本上是线性的,案例如下:

测试数量对纯渲染的影响(红米2)[这些UI是静态元素]:

200个Drawcall大约8ms,目标值:30(~2ms)

同样的在红米Note2(中低端配置)上测试,200Drawcall大约5.1ms。

可以知道:
Drawcall有时候对渲染的影响不会特别的明显,所以在针对UI作优化时,不能把Drawcall最低作为一个优化目标,UI这边的开销并不仅仅是由Drawcall引起的。

2/ 优化界面

UGUI:

  • Z值!= 0的UI元素 (Unity5.x,只能合并hierarchy里相邻的同图集的drawcall)

  • 未“隐藏”元素(还是会渲染):Null Sprite,Color.a = 0,屏幕外

  • Hierarchy穿插+重叠(下图一般icon一个图集,红点一个图集,红点一般比较大会与旁边的icon重叠,就没办法合并,会先渲染icon1,然红点1,然icon2,drawcall一下子就上去了,所以可以红点单独管理,先渲染所有icon,在渲染红点,如下图,只是红点的位置需要额外的脚本控制了)

    =

  • 图集分离(即使我们对纹理都设置了同一个icon,但他有可能还会分成好几个组,这些组就代表了不同的纹理,UGUI里原始的图设置了压缩格式或者使用了真彩,或有些带a有些不带a(透明),他们都会拆成不同的图集,所以可能会:虽然我们把很多纹理放到了一个tag里,drawcall还是非常多,很可能他们在不同的子图集里)

NGUI:

  • 减少UITexture的使用(因为它不能跟其他东西合并,除非两张完全一样的UITexture;如下图第一个红圈占了3个drawcall)
  • Depth穿插
  • 未隐藏元素:Scale = 0还是会渲染

3.Mesh.CreateVBO

需要降低网格更新的频率和范围


4.Overdraw

https://blog.uwa4d.com/archives/video_UI.html
- 减少UI层叠
- 遮挡场景时,关闭场景相机
- 不用Image检测事件

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果8丢了已关机怎么办 肚子吃多了难受怎么办 喝水喝的肚子胀怎么办 肚子吃撑了难受怎么办 肚子撑得想吐怎么办 吃饭吃的太饱怎么办 吃饭吃的太撑怎么办 跑步迈不开步子怎么办 踏步走步子反了怎么办 微信不支持计步怎么办 肝癌二次介入后头晕心慌怎么办 跑步跑得胃疼怎么办 如果世界上的猪都死了怎么办 我和我老婆吵架怎么办 我和我老婆吵架了怎么办 智障人士父母死后怎么办 依赖性太强的人怎么办 高考只有一门写准考证号怎么办 ps做动画不流畅怎么办 ff15引擎剑卖了怎么办 fgo从者满了怎么办 游泳池的水喝了怎么办 月球没有水怎么办秒懂 请了新财神旧的怎么办 报警校体检没过怎么办 ae中建立了文本打不出字怎么办 宝宝3岁内八字怎么办 一岁半宝宝走路内八字怎么办 一岁宝宝走路内八字怎么办 宝宝1岁了内八字怎么办 宝宝学走路内八字怎么办 人胖走路磨腿怎么办 2岁半宝宝内八字怎么办 大狗跑步累倒怎么办? 拉小提琴的姿势不正确怎么办 屁股摔倒了很痛怎么办 腿摔倒了破了怎么办 骑车摔倒腿肿了怎么办 鸟翅膀老是掉着怎么办 有老人摔倒被讹怎么办 剑鞘囊肿手术后黏连怎么办