NGUI drawcall优化

本文探讨了NGUI中的Drawcall优化,建议通过调整UIWidget的depth来确保连续渲染以合批,将不同类型的元素如背景、图片、字体、特效分配到不同的深度范围。此外,建议使用Draw Call Tool检查并合并可合批的UI,优化图集,减少描边字体以降低overdraw,从而提高GPU性能和减少能耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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进行合并
    在这里插入图片描述
    像下面这种2个drawcall就可以解决,产生了5个drawcall
    在这里插入图片描述

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值