Unity3D优化-CPU优化

本文主要探讨Unity3D中CPU优化的策略,包括DrawCall优化、物理组件优化、GC管理以及代码质量提升。通过理解DrawCall概念并采取批处理技术、合理设置物理组件的Fixed Timestep、避免使用网格碰撞器以及避免不必要的GC触发和优化代码质量,可以显著提高游戏性能。
摘要由CSDN通过智能技术生成

Unity优化可谓是方方面面的,Unity优化主要从3个方面入手:CPU方面、GPU方面、内存方面。今天先了解CPU方面的内容。


首先了解影响CUP效率的因素:

1、DrawCalls

2、物理组件

3、GC

4、代码质量。


接下来对应影响CPU效率的各种因素做针对性优化:

一、对DrawCall的优化。

首先了解什么是DrawCall?DrawCall是CPU调用底层图形接口,每一次渲染都要调用一次底层接口。针对DrawCall优化的主要思路就是尽量减少渲染次数。多个物理最好一起渲染。具体有三个方案,

使用Draw Call Batching、

纹理打包成图集减少材质的使用、

少使用反光、阴影使物体进行多次渲染的效果。


Draw call Batching 批处理的前提是需要两个以上的物体使用相同材质和纹理。Draw call Batching分为静态批处理和动态批处理。

静态批处理只要材质和纹理相同,选中物体并在Inspector面板勾选Static即可。一般处理场景中不会移动、缩放、旋转的物体。

动态批处理则限制较多。其处理机制是引擎自动进行的。其限制如下,

1、动态批处理由于在每个顶点上都有一定的开销,所以只支持小于900顶点的网格物体。着色器使用顶点位置、法线和UV值3种属性,只处理300顶点一下的物体。着色器使用顶点位置、法线、UV0、UV1和切向量只处理180顶点以下的物体。

2、不要使用缩放。不同的缩放大小将不会进行批处理。

3、不同材质的实例化物体不会批处理

4、lightmap的物体不会进行批处理,除非他们指向lightmap的同一部分。

5、多通道的shader会妨碍批处理操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值