Unity3D优化问题

本文详细探讨了Unity3D的性能优化策略,包括CPU和GPU层面的优化,如DrawCalls批处理、物理组件调整、内存管理和代码质量优化。在CPU优化中,介绍了静态和动态批处理、减少FPS对物理组件的影响以及内存GC策略。GPU优化侧重于减少顶点数量、优化显存宽带和使用适当的光照与纹理。此外,还提到了模型、音频、相机、粒子特效和程序设计的优化技巧。
摘要由CSDN通过智能技术生成

Unity3D优化问题

一个项目的制作过程一旦完成,便需要面临的优化问题就会有很多。

优化时需要注意的3个方面:
(1).CPU方面 (2).GPU方面 (3).内存方面

CPU方面的优化

对DrawCalls的优化

1.DrawCalls : 每个物体尽量减少渲染次数,多个物体最好一起渲染。
(1).使用Draw Calls Batahing,也就是描绘调用批处理。Unity3D在运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们。
(2).通过把纹理打包成图集尽量减少材质的使用。
(3).尽量少的使用反光、阴影之类的效果,因为那会使物体多次渲染。

2.Static Batching静态批处理
(1).静态批处理操作允许引擎对任意大小的几何物体进行批处理操作来降低绘制调用(只要这些物体不移动,并且拥有相同的材质)。因此,静态批处理比动态批处理更加有效,你应该尽量低使用它,因为它需要更少的CPU开销。

(2). 明确指出哪些物体是静止的,并且在游戏中永远不会移动、旋转和缩放,在检测器(Inspector)中勾选“Static”,Unity在运行时会对static物体进行自动优化处理,所以应该尽可能将非运行实体勾上static标签。

3.动态批处理
(1). 批处理动态物体需要在每个顶点上进行一定的开销,所以动态批处理仅支持小于900顶点的网格物体。
(2). 如果你的着色器使用顶点位置,法线和UV值三种属性,那么你只能批处理300顶点以下的物体;
如果你的着色器需要使用顶点位置,法线,UV0,UV1和切向量,那你只
能批处理180顶点以下的物体。
请注意:属性数量的限制可能会在将来进行改变。
(3).不要使用缩放尺度(scale)。分别拥有缩放尺度(1,1,1)和(2,2,2)的两个物体将不会进行批处理。
(4).统一缩放尺度的物体不会与非统一缩放尺度的物体进行批处理。
使用缩放尺度(1,1,1)和 (1,2,1)的两个物体将不会进行批处理,但是使用缩放尺度(1,2,1)和(1,3,1)的两个物体将可以进行批处理。
(5).使用不同材质的实例化物体(instance)将会导致批处理失败。
(6). 拥有lightmap的物体含有额外(隐藏)的材质属性,比如:lightmap的偏移和缩放系数等。所以,拥有lightmap的物体将不会进行批处理(除非他们指向lightmap的同一
部分)
(7).预设体的实例会自动地使用相同的网格模型和材质。

对物理组件的优化

<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值