对于Unity项目CPU优化的理解

1、首先美术资源的面数,这个程序没法去改,只能通过美术修改。在不影响效果前提下,面数尽可能的少,现在的移动设备性能越来越高,一般同屏最高10万面左右都是可以接受的,当然为了适配一些少量的低端机还是需要减少,个人感觉一个角色面数控制在8千以内,5千左右效果就已经足够达到要求。

 

2、接下来,就是减少Drawcall数量,为什么要减少Drawcall?,因为DrawCall是CPU调用底层图形接口。减少数据拷贝的次数,同时就优化了CPU。

首先就是程序合并Mesh,这个我们程序就可以控制了,网上有很多Mesh合并的方法,主要就是合并Mesh、合并贴图。合并后的Mesh引用合并后的贴图。一度我以为合并了Mesh就减少了Drawcall,我现在才知道这是错的。应该是减少了对材质球的引用从而减少了Drawcall,如果Mesh合并了而材质球没有减少,那么Drawcall并没有减少。所以,合并Mesh是为了能够只引用一个材质球。包括之前做的跑酷对于每个循环场景的mesh合并,还有换装后对于角色的合并都是为了减少材质球引用。

Unity有自带的动态批处理(Dynamic Batching),但是它只对顶点数小于900的mesh进行batch,这个我们不需要管,因为是自动执行的,但是需要注意被Instantiate的模型Scale需要一致,不然不会进行batch

还有静态的批处理(Static Batching),这个就是需要勾上Inspector面板右上角的Static,这样所以被勾上Static的物体都将只占一个Drawcall,但是它就相当于是只读的了。

 

3、我觉得最次要的就是代码的优化,但是这也是非常必要的。这个就不多说了,网上有很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值