Unity工程性能优化学习笔记

网友投稿 734 2022-09-20

Unity工程性能优化学习笔记

Unity工程性能优化学习笔记

一.简介

Unity工程完成后,常常出现安装包大的问题和运行卡的问题。性能优化就是尽量解决这两方面的问题。

二.DrawCall概念

在游戏运行过程中,CPU通过调用图形库接口(DirectX/OpenGL),向GPU传达渲染命令。CPU对图形绘制接口的调用就是DrawCall。一方面CPU在调用图形库接口前,会进行很多准备工作,如检测渲染状态、提交渲染需要的数据、提交渲染需要的状态等,但是CPU同时还要负责很多其他的计算任务,另一方面GPU的处理速度相对较快,很快就能处理完成渲染任务(如果我们同样复制一个1G大小的文件夹,一个文件夹中只有一个文件,大小1G,一个文件夹中有n个文件,每个文件都小于1G,显然单个文件的复制时间要短得多,也是由于每个文件CPU都需要进行一些准备工作,和这里的DrawCall调用的原理类似)。所以CPU在DrawCall前的准备工作增加了CPU的负载,减少DrawCall的次数也就能提升游戏的运行速度。

如何查看DrawCall:

1)新建或打开Unity工程

2)打开窗口:Window->Analysis->Profiler

3)在打开的Profiler(性能分析器)窗口左侧选择Rendering

三.UnityStatistics统计面板

四.实际的一些优化方案

1.资源优化参考标准:

1)Mesh中,动态模型的面片数小于3000,材质数小于3,骨骼数小于50,静态模型顶点数小于500;

2)Audio中,时间较长的音乐(如背景音乐)使用压缩的MP3格式,短时间的音效使用非压缩的wav格式;

3)Texture中,贴图长宽小于1024;

4)Shader中,尽量减少复杂的数学运算,减少discard操作;

注意:以上标准并非绝对标准,仅供参考,具体标准可以自己根据实际项目情况做出调整。

2.减少冗余资源和重复资源:

1)Resources目录下的资源不论是否被引用,都会打包到安装包中,所以不适用的资源不要放在这里;

2)尽量保证同一个资源文件再项目中不要重复存放。

五.LOD技术

在游戏物体上添加LOD Group脚本,可以拖动不同的模型到模型上,设置摄像机在距离游戏物体不同的距离时物体使用的渲染模型,使我们可以在摄像机距离较远时使用粗糙一些的模型渲染,在摄像机距离较近时使用精细一些的模型渲染。

六.遮挡剔除

1)将要进行遮挡剔除的物体设置为静态物体,静态类型为OccluderStatic:

2)打开OcclusionCulling窗口

4)选择Visualization选项,选择场景中的摄像机,添加摄像机

5)再次运行游戏,会发现不在摄像机视野内的游戏物体不会被渲染

七.光照贴图:使用光照贴图预先生成光照信息,而不是在游戏中实时渲染光照,也能优化游戏性能。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Unix网络编程——常见辅助函数总结
下一篇:记录一个开头带有&#x的特征数据的解码(记录开头怎么写)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~