ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-09-12 19:34:09  阅读:230  来源: 互联网

标签:渲染 Mono DrawCall Unity 前提 GPU 优化 CPU


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有