NGUI drawcall优化

  • UILable、UISprite、UITexture都是继承UIWidget,同一Panel上的UIWidget满足texture、shader、material都相同并且depth相同或连续可合批
  • Drawcall多的主要原因是widget的depth相互穿插渲染时不连续,导致相同图集无法合批,建议把背景、字体、图片、特效的depth的分开。

如:一些通用的背景0-10,界面上的图片11-50,一些通用图集上的图片 51-100,字体 101-200,也要把不同字体进行分层,特效300+,避免不同图集和类型造成的穿插。

  • 拼完ui使用Draw Call Tool选中界面查看drawcall是否存在可合批ui,通过调整widget的depth进行合并
    NGUI drawcall优化
    像下面这种2个drawcall就可以解决,产生了5个drawcall
    NGUI drawcall优化

  • 图集方面,如果存在一个界面上引用了其他图集一张图片,可以把那张图片打到当前界面的图集上来减少drawcall,可以使用动态图集,将UI上的图片动态缓冲到RanderTexture上。

  • 尽量减少描边字体,最大描边不超过2,能不用描边就不用,字体描边会对字体进行多次绘制,会造成严重的overdraw,overdraw主要是因为UI元素的重叠引起的,像素填充率过高,GPU对画面进行多次绘制,增加GPU性能负担、能耗及发热,查看overdraw在scene窗口中选择Overdraw,越亮overdraw越严重。
    NGUI drawcall优化

相关文章:

  • 2021-05-20
  • 2021-08-17
  • 2021-10-01
  • 2021-07-06
  • 2021-08-13
  • 2021-08-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-12
  • 2022-12-23
  • 2021-08-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-06
相关资源
相似解决方案