查看: 6301|回复: 4
打印 上一主题 下一主题

[GUI] NGUI之优化Drawcall---Depth调整(转载)

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38266
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-9-28 22:51:07 |只看该作者 |倒序浏览

首先说明,我用的是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,我擦咧,激动啊!!!!!!!!


分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-10-2 07:05:32 |只看该作者
Very great tutorial !
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-10-2 07:05:52 |只看该作者
Very great tutorial !                                 
回复

使用道具 举报

swine    

0

主题

1

听众

76

积分

设计初学者

Rank: 1

纳金币
4
精华
0

活跃会员 灌水之王

地板
发表于 2014-10-9 13:15:31 |只看该作者
  值得参考
回复

使用道具 举报

10

主题

2

听众

1545

积分

助理设计师

Rank: 4

纳金币
79
精华
0

活跃会员

5#
发表于 2014-10-9 13:40:45 |只看该作者
不单单是depth的原因,主要原因是你使用了多个材质。
多个材质穿插在不同的depth之间会打破ngui的合并mesh。何况10个dc和4个本质上区别不大。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-10 09:06 , Processed in 0.082053 second(s), 30 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部