项目优化进行了以下的处理
1 引入对象池(对象池的插件底层做了修改,用链表存储在使用的和未使用的对象)
2 脚本优化,耗时的逻辑进行了优化
今天发现Draw call数依然很高,即使视野内只有飞机和子弹的情况下,Draw call依然可能达到5000,最后经过检查发现,子弹上的特效造成的。
炮台也需要优化,顶点数居然有93K,以后美术提交的模型,最好都检查下
用profiler查看需要优化项的时候,如果有Gfx.WaitForPresent比较耗时的,一种是对帧数进行了限制,或者就是需要优化渲染,应该是CPU等待GPU的一个过程,做好优化这里的消耗就没有了。
经过观察,发现Draw call 2500差不多在本机上是最大值,超过这个值帧数就开始减少
Draw call 还可以通过批处理的方式进行优化,还未在这个项目中实现,稍后尝试
美术方面,单个模型的Draw call过高,可以将一些小的mesh合同成一个mesh,通过这样俩个步骤,可以减少很多的Draw call
今天解决了下动态批处理的问题,前几天批处理不了,是因为两个场景合一起的时候,有2个平行光造成的,因为场景中有树,需要平行光,所以,我们不让2个平行光影响到子弹,这样子弹就可以进行批处理了。 海面上的船,不能设置静态的,也需要批处理,同样的方法也解决了船的批处理。不让光影响子弹可以调节Lighting的Culling Mask。
分享下动态批处理后的样子,ps:还没有优化完