Draw Call优化

1.检测DrawCall是否改变

Game窗口中的stats可以清晰的看到DrawCall

2.渲染顺序

控制好U3D的渲染顺序,才能控制好DrawCall

示例

3.动态批处理

如果动态物体共用着相同的材质,那么Unity会自动对这些物体进行批处理。

4.静态批处理

静态批处理比动态批处理更加有效,你应该尽量低使用它,因为它需要更少的CPU开销。

5.材质

只有拥有相同材质的物体才可以进行批处理。

6.打包图集

1.每个材质/纹理的渲染一定是会产生DrawCall的,这个DrawCall只能通过打包图集来进行优化。

2.图集打包需要将要打包的图集全部放入一个文件夹中,才能进行正确的打包

3.图集打包好之后,使用相同图集的物体只会产生一个DrawCall

详细的关于打包图集的知识请参考我刚刚发的文章图集(基础使用与定义)_drgfd345的博客-CSDN博客

7.特效清理

1.技能特效,或者其他什么特效,那么特效播放完,这个特效我们就看不到了,但假设这个特效在播放结束的时候,没有将自身的Active属性设置为false,那么它就会继续占用你的DrawCall,消耗你设备的计算能力

2.程序需要保证当一个特效播放完之后,能够被消耗,或者设置为非激活的状态,可以使用一些公共方法来完成特效播放完之后的清理工作

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值