纳金网

标题: NGUI之优化Drawcall---Depth调整(转载) [打印本页]

作者: 狂风大尉    时间: 2014-9-28 22:51
标题: NGUI之优化Drawcall---Depth调整(转载)

首先说明,我用的是NGUI 3.7.1版本,只测了这一个版本,其他没有测试过。。。

关于drawcall是什么,姑且理解为GPU为了渲染出我们平常看到的界面而做的一次次刷新界面吧,术语怎么解释,话说我也不太清楚。


好了,进入正题。

今天拿出来上周做出来的项目主城界面,看了看stats,drawcall竟然有10次,我擦,不可忍受,于是开始琢磨怎么减少,在查看各个uisprite之后发现,由NGUI自动给我们生成的depth是不断的给我们+1,+1无限制。。。属于帮我们实现了功能,但是浪费了depth,于是想着开始自己修改各个uisprite的depth,说走咱就走啊~


通过思考得知,同一Panel下,只要两个uisprite不重叠也就是位于屏幕的不同位置,是可以共用一个depth的,于是就按照从小到大的逻辑,位于最下面的uisprite手动设置成0,要覆盖在它上面的就设置成1,再覆盖就设置成2.。。。以此类推,当我把整个界面这样设置完后,发现最高也才用到了4,但是NGUI自动生成的已经到18了。。。。


这个时候运行一个惊奇的发现,drawcall从10降到了4,我擦咧,激动啊!!!!!!!!



作者: hyui    时间: 2014-10-2 07:05
Very great tutorial !
作者: hyui    时间: 2014-10-2 07:05
Very great tutorial !                                 
作者: swine    时间: 2014-10-9 13:15
  值得参考
作者: saviosun    时间: 2014-10-9 13:40
不单单是depth的原因,主要原因是你使用了多个材质。
多个材质穿插在不同的depth之间会打破ngui的合并mesh。何况10个dc和4个本质上区别不大。




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5