【U3D性能优化教程——CPU篇】之二:动态批处理&静态批处理

 

 

 

本文由@唐三十胖子出品,转载请注明出处。  
文章链接:
https://blog.csdn.net/iceSony/article/details/83444170

 

 

 

这篇文章由唐三胖ヾ(•ω•`)o网络整理总结,针对DrawCall概念的系列优化教程。

通过这篇文章,你可以知道

1)动态/静态批处理的概念

2)什么时候会动态批处理

3)如何设置静态批处理

 

动态批处理

顾名思义:U3D自发的渲染批次处理

U3D会检测模型纹理,相同的放在一起渲染,此时DC仅为1,不需要我们做任何操作。

但是注意一点

动态批处理仅支持小于900顶点的网格物体。

再加上着色器使用顶点位置,法线和UV值三种属性,那么你只能批处理300顶点以下的物体

 

 

具体应用:一个对称的图片咱们只需要美术给一半就够了

 

静态批处理

 

上面动态批处理可以很好地修改游戏,那么当顶点个数大于900的呢???

动态处理不了的,咱们静态处理

原理:设置为static的物体相同材质的物体的网格会进行合并,你可以看作是多个物体变成1个大物体

未启动前设置所有静态物体为static,运行以后你会发现减少为

一定要运行,不然看不到效果

建议场景下的石子啊什么的咱们弄一个石头节点,所有的石头都放在节点下

 

如果你需要通过脚本来控制单个材质属性,需要注意改变Renderer.material将会造成一份材质的拷贝。因此,你应该使用Renderer.sharedMaterial来保证材质的共享状态。

有一个合并模型材质不错的插件叫Mesh Baker,大家可以考虑试下。

另外,用灯光将会取消(break)引擎的DRAW CALL BATCH,至于为什么,查看以下:

Forward Rendering Path Details:

http://docs.unity3d.com/Documentation/Components/RenderTech-ForwardRendering.html

好在手游由于性能原因不使用光照,所以一般不担心这个问题。

 

下一章将介绍剔除模型数量直接减少Draw Call数量的方法。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值