DrawCall 优化

unity3D 对于移动平台的支持无可厚非,但是也有时候用Unity3D 开发出来的应用、游戏在移动终端上的运行有着明显的效率问题,比如卡、画质等各种问题。自己在做游戏开发的时候偶有所得。对于主要影响性能的因素做个总结。

主要因素有:

        1.      Saved by batching 值过大   ---- > 这个值主要是针对Mesh的批处理,这个值越高,应用就越卡   

        2.     Drawcall 值过大 ---- >  Drawcall 值过大,所需要的 GPU 的处理性能较高,从而导致CPU的计算时间过长,于是就卡了

        3.     点、面过多           ---- > 点、面过多,GPU 根据不同面的效果展开计算,并且CPU计算的数据也多,所以效果出来了,但是卡巴斯基

由于 Saved by batching 和 Drawcall 值过大所引起的卡的问题我所做的优化方式有:

        1.    对于模型 :Mesh 合并,有个不错的插件(DrawCall Minimizer   --->  直接上Asset Store 下载即可,免费的,而且有文档,很容易上手)

        2.    对于UI  :  尽量避免使用Unity3D自带的 GUI 换用 NGUI或者EZGUI;因为这两个UI插件对于UI中的图片处理是将UI图片放置在一个 Atlas 中,一个 Atlas 对应一个Drawcall

        3.   对于灯光: 可以使用 Unity3D 自带的  Lightmapping 插件来烘焙场景中的灯光效果到物体材质上 

        4.  对于场景: 可以使用 Unity3D 自带的 Occlusion Culling 插件把静止不动的场景元素烘焙出来

        4.   对于特效:尽量把材质纹理合并

对于Unity3D 在移动终端上支持的Drawcall 数到底多少,主要是跟机子性能有关的,当然也不是说值小性能就一定没问题(本人亲测,也有17就卡的,主要是模型材质纹理过大所引起的),目前我做的是70左右的,还OK,挺正常的

 

由于点、面过多所导致的性能问题,最好用简模,用四面体来做复杂的模型,但是面、点也别太多,至于Unity3D 到底支持多少点、面的说法各异,我也搞不懂,总之少些肯定OK

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SkinMeshRenderer是Unity引擎中用于渲染带有骨骼动画的模型的组件。由于骨骼动画会涉及到大量的顶点变换计算,因此SkinMeshRenderer的渲染性能优化是一个重要的问题。 一种常用的SkinMeshRenderer drawcall优化方法是使用Batching。Batching是将多个物体合并成一个批次进行渲染,从而减少draw call的次数。对于SkinMeshRenderer组件,可以通过以下方法进行Batching优化: 1. 合并相邻的骨骼动画模型:如果场景中有多个使用相同材质的骨骼动画模型,可以将它们合并成一个模型,减少draw call的次数。 2. 合并相同材质的子网格:对于同一个骨骼动画模型,如果它有多个子网格(Submesh),而且使用相同的材质,可以将这些子网格合并成一个Submesh,减少draw call的次数。 3. 使用GPU Instancing:GPU Instancing是一种将多个实例化的模型对象渲染为一个draw call的技术。对于骨骼动画模型,可以使用GPU Instancing来优化渲染性能。 4. 减少骨骼数量:在设计角色的骨骼时,可以合理地减少骨骼的数量,从而减少顶点变换计算的复杂度。 5. 使用LOD(Level of Detail)技术:对于一些距离较远的骨骼动画模型,可以使用LOD技术来减少顶点数量和draw call的次数。 综上所述,通过合并模型、合并子网格、使用GPU Instancing、优化骨骼数量和使用LOD技术等方法,可以对SkinMeshRenderer组件的draw call进行优化,从而提高骨骼动画的渲染性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值