unity性能优化初级入门篇
文章目录
- Draw Call
- Statistics面板
- 资源优化标准
- 其他
- 渲染优化的几种手段
Draw Call
- Draw call 主要影响的是cpu的性能,因为每发送一次Draw call 命令,cpu就要腾出性能来做准备工作
- 如果Draw call 过多,会极大的影响的性能
Statistics面板
- FPS是帧率 (后面是每一帧的渲染时间)
- Batches 批处理次数【将几个DrawCall合并在一起进行绘制,unity内置的一种优化方法】
- Verts 顶点数【摄像机视野内的顶点数,天空盒本身也包括一部分】
- Tris 三角面片数
- Screen 当前屏幕的分辨率,23.7M表示当前使用的内存
- https://blog.csdn.net/wdmzjzlym/article/details/51335915
资源优化标准
- 在移动端的动态模型的面片数<3000,骨骼数<50,材质数<3。
- 相应的还有静态模型的标准顶点数<500
- Audio
- 对于长时间的背景音乐,使用MP3压缩格式。减少压缩包大小
- 对于短时间的音乐,使用非压缩格式wav.因为要频繁的进行播放,来回的进行解压会很耗性能
- Decompress On Load
在硬盘上压缩这个文件,并在第一次加载到内存的时候解压它,这是加载声音文件的默认选项,大多数情况下我们应该使用这个选择 。 - Compressed In Memory
保持声音在内存中是压缩的并在播放时解压缩。这有更多的CPU开销(尤其是OGG / Vorbis格式的压缩文件),但可以提高加载速度并减少内存消 耗,因此这个选项适用于大文件。 在性能窗口可以看"DSP CPU"。 - Streaming 选项
直接从磁盘流音频数据。这只使用了原始声音占内存大小的很小一部分。 该方法使用最少的内存和最多的CPU,它有个很明显的缺点就是不能被引用超过一次。试着让 Audio Clip产生多个副本的时候会每个都产生数据缓冲区,如果非要这么做会产生大量的内存和cpu消耗。因此这个选择最好是给单实例的Audio Clip,如背景和环境音效。对于手游而言不要优先考虑使用这种方式。 - https://blog.csdn.net/u012565990/article/details/51794486
- Decompress On Load
- Shader要减少复杂的数学运算
- Texture长度要小于1024
- 减少Discard操作
其他
- 资源冗余
- 在build的时候,如果是场景引用的文件,会自动进行打包,但是Resource里面文件,无论是否被引用,都会被打包
- 不同目录下的相同资源文件如果都被引用,那么都会被打包
- 贴图优化
- 将贴图合并
- 模型优化
- 减少面片数与顶点数即可
- 资源监测与分析,我们可以在开始项目时就对资源进行严格的把控。也可以在打包后,利用第三方分析工具对AssetBundle进行分析,或者对游戏分析
- https://www.uwa4d.com
渲染优化的几种手段
- Lod层级细节,需要美工配合,针对同一模型做出三种不同精度的模型
- 然后挂载lodgroup组件,将三个模型分别挂在100%,30%,10%,就会在摄像机在不同距离的时候自动调用不同的模型显示以达到减少三角顶点数与面片数
- 遮挡剔除 将所有需要遮挡剔除的物体设置为Occludee static 与Occluder static 遮挡物与被遮挡物静态物体
- 然后在windows——Rendering——Occlusion Culling 选择开始烘焙
- 被遮挡物挡住的被遮挡物不会进行渲染,通过这种手段来降低渲染的面片数与顶点数
- 光照贴图 光照渲染进行动态计算的话会很耗费·性能,将物体勾选为LightMap Static 然后将灯光的Mode作为Baked,在Windows——Rendering——light setting ——点击generate light,就可以生成对应的贴图
- 合并Mesh
- 可以在3维建模软件里面进行合并,也可以在unity里面进行合并如果原来有一千个物体,那么渲染的时候CPU就要准备1000次,但是我们将这一千个物体合并成一个模型,那么CPU只需要准备一次就可以,对于GPU而言,工作量是相同的,但是更加节约CPU的·性能【同样也要合并材质】
void Start () {MeshCombine();}void MeshCombine(){MeshFilter[] filters = GetComponentsInChildren<MeshFilter>();CombineInstance[] combiners = new CombineInstance[filters.Length];for(int i = 0; i < filters.Length; i++){combiners[i].mesh = filters[i].sharedMesh;combiners[i].transform = filters[i].transform.localToWorldMatrix;}Mesh finalMesh = new Mesh();finalMesh.CombineMeshes(combiners);GetComponent<MeshFilter>().sharedMesh = finalMesh;}
- 编译性能优化
unity性能优化初级入门篇相关推荐
- Unity性能优化 :合批篇
前言 本系列为一些性能优化的小知识,是日常游戏开发中与性能表现的一些点,本篇为该系列文章的第二篇,前篇链接: 第一篇: Unity性能优化:资源篇 在早期Unity中,对于合批的处理手段主要是下面三种 ...
- Unity 性能优化:资源篇
Unity性能优化 大的方面来说,通过Unity对于项目的性能优化大概可以分为下面几个部分: 资源 渲染 程序 项目配置 而在这个部分中,资源的性能优化属于最基础.最有效的优化手段,也是游戏开发者日常 ...
- Unity性能优化之内存篇(上)
原文链接:http://blog.uwa4d.com/archives/optimzation_memory_1.html 项目的性能优化主要围绕CPU.GPU和内存三大方面进行.接上期CPU优化专讲 ...
- Unity性能优化之字体篇
使用引擎:Unity 使用软件:FontSubsetGUI,FontCreator 前言 首先我们要知道Unity导出安装包时是把游戏场景所应用的资源打包导出,而字体就是其中的一种,但Unity使用的 ...
- Unity性能优化 – 脚本篇
最近开始进行Unity性能优化的工作,主要分为三类:CPU.GPU和内存.由于我们游戏的核心战斗是计算密集型,所以主要是受限于CPU.CPU的优化又分为渲染和脚本,本文将着重于脚本优化. 一般来说,优 ...
- 网站性能优化从入门到粗通(PHP 篇)
本文来自作者 蒋岩 在 GitChat 上分享 「网站性能优化从入门到粗通(PHP 篇)」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 题外话:本次 Chat 的主题是入门到粗通,所以内 ...
- 视频教程-①Spring Cloud 第一季(初级入门篇)-Java
①Spring Cloud 第一季(初级入门篇) 2011年毕业后在澳门 遊澳集团(UO Group)旗下某IT科技公司从事 android,php,j2ee开发工作,负责 国际短信发送系统.银联支付 ...
- Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译
http://www.cnblogs.com/alan777/p/6135703.html Unity性能优化(2)-官方教程Diagnosing performance problems using ...
- Unity 性能优化基础
文章目录 前言 一.代码层面 二.减少Rebatch和Rebuild 1.Rebatch 2.Rebuild 3.优化点 三.降低OverDraw 总结 前言 最近笔者在找工作,面试过程经常被问到工作 ...
- 【转】【技术博客】Spark性能优化指南——高级篇
http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...
最新文章
- Linux内核的并发与竞态、信号量、互斥锁、自旋锁
- IEWebBrowser组件的execWB方法
- 处理网络请求qs、图片转base64的优劣
- MFC源码解读(一)最原始一个MFC程序,手写不用向导
- WPF MVVM 验证
- Android 编码规范:(五)避免创建不必要的对象
- 广西移动计算机面试题,广西移动笔试经验分享
- Node.js log4js日志记录
- 【数据预测】基于matlab双向长短时记忆(biLSTM)数据预测【含Matlab源码 1793期】
- 新萝卜家园 GhostXP_SP3 五一纪念版
- 快播资源地址转百度影音地址v1.2
- 关于VS2005与Vs2008的比较
- 江晓华:为火箭发射寻觅气象窗口
- 风险管理-输入、输出、工具和技术
- Steam游戏导入vrPlus中运行
- R语言求一行(列表、list)数据的平均数
- C++之个人银行账户管理程序(二)
- perl data::dumper 模块使用
- 连续剧网页服务器搭建,电影服务器的架设及其安全防范配置流媒体服务器 -电脑资料...
- Android实现有声计算器代码,有声语音计算器效果与代码
热门文章
- java中的对象传递
- Django SCRF跨站点请求伪造
- setTimeout(), nextTick(),setImmediate()区别 ZT~
- Writing A Threadpool in Rust
- 51Nod 1509加长棒
- git 创建远程仓库
- 深入理解Yii2.0(yii学习的经典博客)
- Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务(转)
- Debian/Ubuntu - 解决Root用户不能远程连接服务器的问题
- SDN基本概念和Overlay技术