其他分享
首页 > 其他分享> > Unity性能优化:优化相关前提

Unity性能优化:优化相关前提

作者:互联网

Unity游戏安卓包运行卡的原因? Mono

{
首先来了解一下Mono虚拟机。
Unity将游戏运行在一个Mono虚拟机上,所以能实现跨平台的功能。
但是由于有Mono虚拟机的存在所以我们实际打出来的包=(游戏+mono),所以Unity打出的包会很大。
}

Profiler

{
可以查看很多性能有关的
在这里插入图片描述

}

DrawCall

{
DrawCall:就是cpu对图形绘制接口调用,CPU通过调用图形库接口,命令GPU进行渲染操作。一次调用就是一次DrawCall。所以如果调用次数多的话就会大量占据GPU的性能消耗。

DrawCall与性能:其实DrawCall造成的性能问题的元凶是CPU。因为CPU是发送命令的始作俑者,CPU发送一个渲染命令之后,GPU立即执行渲染命令绘制图形,等到渲染命令结束之后,CPU才可以继续发送下一个渲染命令。最耗费性能的原因是,CPU还要进行很多准备工作,检测渲染状态,提交渲染所需的数据,提交渲染所需要的状态。GPU渲染很快就能处理完,但DrawCall过多会导致CPU有很多额外的开销用于准备工作,CPU本身负载而GPU可能闲置了。 打个比方:拷贝1000个总大小1m的文件和单个大小为1m的文件,,明显1000个慢很多,DrawCall也是这个原理。

减少DrawCall:
我们可以打开Unity的Profiler面板查看Rendering下的DrawCall。可以发现Draw根据物体的种类的增多而增多,而不取决与数量
在这里插入图片描述

}

UnityStatistics统计面板

{
在这里插入图片描述

FPS:每秒帧数,表示渲染引擎处理一个渲染帧所花费的时间,时间越短fps就越长,人眼去看就越流畅。一般要让游戏保持肉眼可见的流畅度需要保持在30帧以上

CPU:计算每一帧需要花费的时间。越低说明计算越快。

render thread:渲染图片所需要的时间。越低越快。

Batches:可以看做是对Draw的合并的箱子,同材质或 Shader 的物件,可以合并成一个 Batch 送往 GPU。多个DrawCall可以视为一个Batch,一个Batch中包含多个DrawCall,节省了一部分CPU提交数据的操作。

Verts:顶点个数

Tris:三角面个数
}

标签:渲染,Mono,DrawCall,Unity,前提,GPU,优化,CPU
来源: https://blog.csdn.net/bwabdbkjdbkjwabd/article/details/120254587