Unity整体性能优化篇 第(一)节:Unity性能优化相关前提

本文探讨Unity游戏性能优化,重点讲解DrawCall及其影响,介绍CPU与GPU的工作原理,并提供UnityProfiler和UnityStatistics使用指南,帮助开发者识别和解决性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一.Unity游戏安装包大/运行卡的原因?

原因

Mono虚拟机(可跨平台的依赖)的存在造成的unity开发的游戏包普遍的大,而且运行速度较慢。

流程

我们开发的游戏->Mono虚拟机进行运行->操作系统。

优化:

优化必不可少,不然开发出来的unity游戏无法达到商业标准,玩家游戏体验特别差。


二:DrawCall

1. DrawCall,CPU,GPU介绍
DrawCall:

优化相关的属性,就是cpu对图形绘制接口的调用,CPU通过调用图形库(directx/opengl)接口,命令GPU进行渲染操作的过程。(DrawCall数量代表命令次数cpu对gpu的命令次数)

CPU:也叫做中央处理器(Central Processing Unit)

是一台计算机的运算核心(Core)和控制核心( Control Unit)。
CPU的主要组件包括执行算术和逻辑操作的算术逻辑单元(ALU)、向ALU提供操作数并存储ALU操作结果的处理器寄存器和协调提取(从存储器)和执行指令的控制单元。

GPU:图形处理器(Graphics Processing Unit)

又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器

2.CPU和GPU是如何进行并行工作和交互的?

CPU与GPU并行工作,独立而不相互依赖。这是通过命令缓冲区来实现的:命令缓冲区维护一个命令队列,CPU向其中发送命令,GPU从中取出命令并执行。命令有很多种,DrawCall是一种,其他命令还有改变渲染状态、设置渲染数据流等。

这种方式就类似于游戏开发的网络通信:维持一个消息队列,网络线程接收解析消息并将之添加到消息队列,游戏主线程更新时从中取出消息并做派发处理。

3.DrawCall是如何影响性能的?

每一次绘制CPU都要调用DrawCall,而在调动DrawCall前,CPU还要进行很多准备工作:检测渲染状态、提交渲染所需要的数据、提交渲染所需要的状态。

而GPU本身具有很强大的计算能力,可以很快就处理完渲染任务。

当DrawCall过多,CPU就会很多额外开销用于准备工作,CPU本身负载,而这时GPU可能闲置了。

4.DrawCall优化:减少DrawCall

既然,我们已经知道DrawCall导致的性能问题在于DrawCall数量过多,那么我们优化的思路就是减少DrawCall。这里我们只讨论批处理(Batching)。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值