对于unity场景优化的整理

场景优化

对于unity项目场景优化的一点点经验,可能有理解错误,希望能指出

  1. 主要优化的方向Drawcall,渲染面数(模型/阴影),Setpass Call,CPU占用率,灯光烘培,贴图纹理优化,内存

  2. Drawcall 可以采用的手段有静态批处理,动态批处理,GPUInstancing,SRP Batcher

    1. 静态批处理:
      勾选BatchingStatic,打包后会将相同模型的物体进行合并网格,达到批处理的效果,但是会增加包体大小,优点可以进行烘培光照贴图
    2. 动态批处理:
      每一帧把可以进行批处理的模型网格进行合并,再把合并后模型数据传递给GPU,然后使用同一个材质对其渲染,顶点属性要小于900,缺点动态批处理会消耗CPU,限制比较大.SRP渲染管线的动态批处理设置在渲染管线中的Advanced->Dynamic Batching选项
    3. GPUInstancing:
      通过Graphics.DrawMeshInstanced方法将将相同模型,相同材质球的物体,不同位置旋转大小信息,进行同一批次渲染,该方法需在Update中每帧调用
      优点:可以对动态生成的物体进行合批,可以通过代码控制渲染,通过AnimationInstancing脚本,将蒙皮动画烘培成贴图数据,通过读取贴图数据,在材质球中修改顶点的位置,达到对蒙皮动画的物体进行GPUInstancing合批,可适用于草,树木,等大量重复生成的物体.
      缺点:项目暂时不能对静态的光照贴图进行烘培,只能先通过烘培阴影,物体身上的阴影和光照可以根据需求显示或隐藏,(之后的研究可以通过材质球获取光照贴图,再把光照贴图叠加到顶点数据中).同一模型处理的数量不能超过1023个,否则会报错,需要进行再分开处理
    4. SRP Batcher
      SRP自带的合批处理,可以将相同shader变体的物体进行合批.变体的意思是,材质球A只有albedo,材质球B也只有albedo,尽管他们的albedo贴图是不同的,
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值