ICode9

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

Unity工程性能优化学习笔记

2021-04-14 02:01:10  阅读:255  来源: 互联网

标签:游戏 渲染 DrawCall 笔记 摄像机 Unity 模型 优化 CPU


一.简介

  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窗口

  3)在窗口中选择object窗口,选择All,勾选OccluderStatic,然后点击右下角Bake选项,生成遮挡剔除基础数据

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

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

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

标签:游戏,渲染,DrawCall,笔记,摄像机,Unity,模型,优化,CPU
来源: https://www.cnblogs.com/movin2333/p/14656114.html

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

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

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

ICode9版权所有