Unity优化知识小结
2017-01-10 12:36
190 查看
Unity优化知识小结
概述:
Unity项目的优化是每个开发团队中必备的技能,以前虽然也知道如何去优化,但是一直没有系统的总结过,刚好最近在看SHADER的书籍,其中讲到了优化的知识,所以特地总结一下,这样也可以让自己的对优化的了解更加系统。
优化,首先要知道为什么要优化?为了能保证游戏在预期的帧率和分辨率下工作。在开始优化前,我们可以通过unity自带的渲染分析工具来查看渲染中的数据信息,这些数据信息可以帮助我们分析游戏渲染性能,从而帮助我们更加有针对性的进行优化。查看渲染数据有以下几种方式,
Stats(渲染统计窗口)
参数详解:
渲染统计窗口主要包括三个方面的信息:Audio,Graphics,Network,重点就是第二个方面,图形方面。
在Graphics中,给出了渲染一帧需要的时间和每秒传输的帧数,和批处理数量,节省的批处理数目,三角面数目和顶点数目,屏幕的大小以及占用的内存,通道呼叫,以及阴影等。
1378.2FPS(0.7ms) :这个参数表示每秒传输的帧数是1378.2帧,这个值越大游戏越流畅,0.7ms表示渲染一帧需要的时间。(单位换算:1s=1000ms)
CPU/render thread :前者表示获取的cpu进行渲染设置当前帧需要的时间,后者表示GPU处理渲染所需要的时间。
Batches:表示花费的批处理数目
Saved By batching :表示节省的批处理数目
Tris&Verts:表示三角面和顶点数目
Screen:当前屏幕大小以及占用的内存
SetPass:shader中的通道渲染
Shader caster:阴影数目
Visible skinned meshes & Animations:渲染的蒙皮网格数目以及动画数目
通过渲染统计窗口的各个数值表达,我们就可以具体看出在渲染输出中到底是哪一部分数据对游戏性能进行降低,这样更加有针对性的进行渲染。上图中的数据,是因为存在摄像机,天空盒子之类的,当我们删除了天空盒禁用了摄像机之后,同时注意,Audio里面的数值静音或者无声音时候默认74.8dB。
接着打开一个真正的游戏工程,我们来看看真实的渲染数据是什么样的:
这样通过渲染统计窗口,我们就能对这个渲染过程中的数据有一个整体把握,从而有针对性的进行渲染性能瓶颈查验,从而找到提高渲染性能的方法。不只是通过渲染统计窗口可以查看渲染数据信息,通过另外一种渲染分析工具也可以实现,那就是profile(性能分析器),如下图:
我们可以从地下的详细数据看到,这些数据和我们的渲染统计窗口是符合的,但是通过拖到渲染调试基准线,会发现有的时候有些数目会大于渲染统计窗口中的数目,比如上图中的批处理数目为57,渲染统计窗口中的数目为56,这是因为unity背后还要为我们做一些别的工作,因此会耗费更多的drawcall。
好了这两种工具,配合使用能够更加清晰明了的了解性能优化方面的具体该怎么去做。
(未完待续.....)
概述:
Unity项目的优化是每个开发团队中必备的技能,以前虽然也知道如何去优化,但是一直没有系统的总结过,刚好最近在看SHADER的书籍,其中讲到了优化的知识,所以特地总结一下,这样也可以让自己的对优化的了解更加系统。
优化,首先要知道为什么要优化?为了能保证游戏在预期的帧率和分辨率下工作。在开始优化前,我们可以通过unity自带的渲染分析工具来查看渲染中的数据信息,这些数据信息可以帮助我们分析游戏渲染性能,从而帮助我们更加有针对性的进行优化。查看渲染数据有以下几种方式,
Stats(渲染统计窗口)
参数详解:
渲染统计窗口主要包括三个方面的信息:Audio,Graphics,Network,重点就是第二个方面,图形方面。
在Graphics中,给出了渲染一帧需要的时间和每秒传输的帧数,和批处理数量,节省的批处理数目,三角面数目和顶点数目,屏幕的大小以及占用的内存,通道呼叫,以及阴影等。
1378.2FPS(0.7ms) :这个参数表示每秒传输的帧数是1378.2帧,这个值越大游戏越流畅,0.7ms表示渲染一帧需要的时间。(单位换算:1s=1000ms)
CPU/render thread :前者表示获取的cpu进行渲染设置当前帧需要的时间,后者表示GPU处理渲染所需要的时间。
Batches:表示花费的批处理数目
Saved By batching :表示节省的批处理数目
Tris&Verts:表示三角面和顶点数目
Screen:当前屏幕大小以及占用的内存
SetPass:shader中的通道渲染
Shader caster:阴影数目
Visible skinned meshes & Animations:渲染的蒙皮网格数目以及动画数目
通过渲染统计窗口的各个数值表达,我们就可以具体看出在渲染输出中到底是哪一部分数据对游戏性能进行降低,这样更加有针对性的进行渲染。上图中的数据,是因为存在摄像机,天空盒子之类的,当我们删除了天空盒禁用了摄像机之后,同时注意,Audio里面的数值静音或者无声音时候默认74.8dB。
接着打开一个真正的游戏工程,我们来看看真实的渲染数据是什么样的:
这样通过渲染统计窗口,我们就能对这个渲染过程中的数据有一个整体把握,从而有针对性的进行渲染性能瓶颈查验,从而找到提高渲染性能的方法。不只是通过渲染统计窗口可以查看渲染数据信息,通过另外一种渲染分析工具也可以实现,那就是profile(性能分析器),如下图:
我们可以从地下的详细数据看到,这些数据和我们的渲染统计窗口是符合的,但是通过拖到渲染调试基准线,会发现有的时候有些数目会大于渲染统计窗口中的数目,比如上图中的批处理数目为57,渲染统计窗口中的数目为56,这是因为unity背后还要为我们做一些别的工作,因此会耗费更多的drawcall。
好了这两种工具,配合使用能够更加清晰明了的了解性能优化方面的具体该怎么去做。
(未完待续.....)
相关文章推荐
- unity中的移动端优化小结
- [基础知识] 总结使用Unity 3D优化游戏运行性能的经验
- Unity学习小结1 - 资源优化(1)
- Unity学习小结2 - 资源优化(2)
- 达到良好的网站优化效果需要注意的十点小结
- Oracle10g数据库优化实用心得小结(转贴)
- 搜索引擎关键词排名优化知识完全手册!
- 《搜索引擎优化 SEO 知识完全手册》完整版1
- 关于数据库优化的小结!
- Oracle10g数据库优化实用心得小结
- 一个报表的优化及小结
- VC++ 知识小结
- PHP优化及高效提速小结
- 关于网站优化的一些知识
- SQL语言小结和优化(整理)
- PHP执行速率优化技巧小结
- 小知识:Windows XP优化全攻略(网吧型)
- Oracle10g数据库优化实用心得小结
- CSS知识小结CSS知识小结
- J2SE基础知识小结