Unity 性能优化(力荐)】的更多相关文章

开始之前先分享几款性能优化的插件: 1.SimpleLOD : 除了同样拥有Mesh Baker所具有的Mesh合并.Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持. 该插件可在Run-time和Editor中都可以使用,同时开放了源码,大家可以根据项目的实际情况而作修改. http://download.csdn.net/download/jasonczy/10178526 一. 转载自 http://blog.csdn.net/game_jqd/articl…
本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻译 Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译 Unity性能优化(3)-官方教程Optimizing garbage collection in Uni…
本文是Unity官方教程,性能优化系列的第四篇<Optimizing graphics rendering in Unity games>的翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻译 Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译 Unity性能优化(3)-官方教程Optimizing garbage collection in Uni…
本文是Unity官方教程,性能优化系列的第二篇<Diagnosing performance problems using the Profiler window>的简单翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻译 Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译 Unity性能优化(3)-官方教程Optimizing garbage co…
本文是Unity官方教程,性能优化系列的第一篇<The Profiler window>的简单翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻译 Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译 Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译 Unity性能优化(4)…
贴图: l  控制贴图大小,尽量不要超过 1024 x1024: l  尽量使用2的n次幂大小的贴图,否则GfxDriver里会有2份贴图: l  尽量使用压缩格式减小贴图大小: l  若干种贴图合并技术: l  去除多余的alpha通道: l  不同设备使用不同的纹理贴图,分层显示: 模型: l  尽量控制模型的面数,小于1500会比较合适: l  不同设备使用不同的模型面数: l  尽量保持在30根骨骼内: l  一个网格不要超过3个material: 动画: l  N种动画压缩方法: l …
这里从三个纬度来分享下内存的优化经验:代码层面.贴图层面.框架设计层面. 一.代码层面. 1.foreach. Mono下的foreach使用需谨慎.频繁调用容易触及堆上限,导致GC过早触发,出现卡顿现象. 特别注意的是在Update中如果非必要,不要使用foreach.尽可能用for来代替foreach.会产生GC Alloc,说明foreach调用GetEnumerator()时候有堆内存上的操作,new和dispose. 2.string修改. 如果熟悉C++的话,就会了解,每次使用str…
没想到Unity的音频会成为内存杀手,在实际的商业项目中,音频的优化必不可少. 1. Unity支持许多不同的音频格式,但最终它将它们全部转换为首选格式.音频压缩格式有PCM.ADPCM.Vorbis,不是所有平台都支持这些所有的压缩格式,有些平台,例如WebGL只支持AAC格式. 2.所有音频导入时,默认两项设置,LoadType是"Decompress On Load",压缩格式是“Vorbis”,例如下图原始文件大小计算为35.9 MB,导入的大小计算为10.7 MB.这意味着这…
1. DrawCall是啥?其实就是对底层图形程序(比如:OpenGL ES)接口的调用,以在屏幕上画出东西.所以,是谁去调用这些接口呢?CPU.比如有上千个物体,每一个的渲染都需要去调用一次底层接口,而每一次的调用CPU都需要做很多工作,那么CPU必然不堪重负.但是对于GPU来说,图形处理的工作量是一样的.所以对DrawCall的优化,主要就是为了尽量解放CPU在调用图形接口上的开销.所以针对drawcall我们主要的思路就是每个物体尽量减少渲染次数,多个物体最好一起渲染. 2. 优化方式 (…
Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置.法线.UV等),索引(顶点如何组成三角形),变换(就是物体的位置.旋转.缩放.以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然后通知图形API——或者就简单地看作是通知GPU——开始绘制,GPU基于这些数据,经过一系列运算,在屏幕上画出成千上万的三角形,最终构成一幅图像. 在Unity中…
一.优化组件访问方式 原文:http://blog.csdn.net/lijing_hi/article/details/11657887 1.缓存Component的引用,如transform 2.缓存Components列表的引用,再遍历 二.使用Delegate的委托事件取代SendMessage 原文:http://blog.csdn.net/chiuan/article/details/7918833…
LOD,中文名多层次细节,是游戏中最常用的技术,它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算.今天我们来实现使用它来做一个简单的优化例子. 我们没有模型(程序员的悲哀)就用Particle粒子特效来做试验吧.在场景中建立一个空物体,取名LODEffects,在空物体下面建立一个Particle并复制两份都做为子物体.这们用这三个Particle可以当作不同细节的模型,分别调整它们的ParticleSystem组件下Emission的Ra…
特效合并,意思是说将粒子所用的零碎图片,以shader为单位合并成一张图集,好处就是可以降低draw call.试想,合并前每个粒子使用一个material,而每一个material就要占用一个drawcall,而合并后多个粒子可以用同一个material,这样就降低了drawcall,提升了性能. 转载请注明出处:http://www.cnblogs.com/jietian331/p/8625078.html 合并工具的代码如下: using System.Collections.Generi…
Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置.法线.UV等),索引(顶点如何组成三角形),变换(就是物体的位置.旋转.缩放.以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然后通知图形API——或者就简单地看作是通知GPU——开始绘制,GPU基于这些数据,经过一系列运算,在屏幕上画出成千上万的三角形,最终构成一幅图像. 在Unity中…
1.对象池Object Pool的原理: 有些GameObject是在游戏中需要频繁生成并销毁的(比如射击游戏中的子弹),以前的常规做法是:Instantiate不断生成预设件Prefab,然后采用碰撞销毁,或者定时销毁,大量创建重复对象造成内存损耗,影响性能还容易产生内存碎片. 所谓对象池,就是针对需要经常生成消失的对象.我们在对象需要消失的时候不Destroy而是SetActive(false),然后放入池子中,当需要再次显示一个新的对象的时候,先去池子中看有没有隐藏的对象,有就取出SetA…
1. Occlusion Culling-遮挡剔除的含义:没有在Camear视野范围内的游戏物体不进行渲染Render(默认情况下,Unity是会渲染所有GameObject,无论Camear是否看得见),例如下图: 2. 使用比较简单,效果也是立竿见影 (1)配置下游戏物体: (2)“window"菜单->Rendering->Occulision Culling, (3)Tab项”Object",选择"All" (4)切换到Bake菜单,直接使用默认…
https://wuzhiwei.net/unity_script_optimization/…
聊聊近况: 距离上一篇文章已经过了好久,主要原因是我懒了.公司项目也到了开始优化的阶段,上网找的资料,看过了就忘.还是想把它整理一下,写出来.其实我说的东西,网上都有,我只是搬运工而已. 贴图压缩: Android平台使用ETC1格式压缩. 目前主流的Android机型基本都支持ETC1格式压缩.但ETC1只能支持非Alpha通道的图片压缩. 所以一般把RGB和ALPHA分离出来,r值,g值,b值从RGB图获取,a值从Alpha图里获取. 随着OPENGL ES 3.0的发布,etc2也出了,支…
前段时间本人转战unity手游,由于作者(Chwen)之前参与端游开发,有些端游的经验可以直接移植到手游,比如项目框架架构.代码设计.部分性能分析,而对于移动终端而言,CPU.内存.显卡甚至电池等硬件因素,以及网络等条件限制,对移动游戏开发的优化带来更大的挑战. 这里就以unity4.5x版本为例,对Unity的优化方案做一个总结,有些是项目遇到的,也有些是看到别人写的不错拿来分享,算作一个整理,后期也会持续更新.本优化从CPU.GPU和内存三个方面着手总结,这一篇先从CPU说起,整理一些针对C…
Unity 绘图性能优化 - Draw Call Batching Unity官方链接:http://docs.unity3d.com/Manual/DrawCallBatching.html 转载请注明本文链接:http://www.cnblogs.com/fly-100/p/5422734.html Draw Call Batching 在屏幕上绘制一个物体,U3D引擎必须向绘图API(openGL或者D3D)发起一次DrawCall.这些DrawCall往往是昂贵的,当绘图API为每个Dr…
本文将介绍一些提升Unity UI性能的技巧.更多优化技巧,可以观看Unity工程师Ian Dundore在Unite Europe 2017的演讲<使用Unity性能提升技巧>. 1.划分画布 问题:UI Canvas上有一个或多个元素变化时,会污染整个画布. 画布(Canvas)是Unity UI的基本组件.它会生成网格来呈现放置在画布上的UI元素,当UI元素变化时,它会重新生成网格并向GPU发起绘图调用,从而显示出UI. 生成这些网格会消耗大量性能,需要将UI元素收集到批处理中,从而尽可…
https://mp.weixin.qq.com/s?__biz=MzU5MjQ1NTEwOA==&mid=2247490321&idx=1&sn=f9f34407ee5c5d0d1edb478981299108&chksm=fe1e2fbac969a6acee4eddb865d161fe09400c9147794c777ea4087e59f1e5fc3ccca5d1d0dd&scene=21#wechat_redirect 在10月26日的Unity独立游戏日上,…
本篇内容主要来自Unity官方手册: 一般性能优化 一些地方为本人瞎编杜撰,请酌情参考.如有错误,欢迎指出. Unity里C#编程虽然既简单还很爽,但是性能小陷阱还不少.我总强迫自己让代码最优,因此很留意这些细节.这里我记录了一下最近发现的一下优化点.   协程 别嵌套 协程( Coroutine )固然爽,我用起来可得心应手了,刷刷刷,平滑动画,等待加载,定时启动…… 官方的意见是: 在可能的情况下,最好将一系列操作压缩到尽可能少协程.虽然嵌套协程非常适合代码清晰度和维护,但由于协程跟踪对象,…
一.引子 最近马三入职了新公司,平时除了负责编辑器开发之外还要做一些游戏性能优化方面的工作.在这里首先给大家安利一下Unity官方的性能测试分析工具URP ,这个工具目前是免费,测试的过程中也不需要接入任何SDK,测试完成以后还可以生成一份性能测试报告.当然,相比侑虎科技的UWA GOT工具来讲,目前UPR功能还是比较少的,不过在项目初期完全可以先使用UPR做一些性能优化工作.好了言归正传,我们今天说说如何在真机上开启DeepProfile模式以及一些坑. 二.在真机上开启DeepProfile…
http://www.cnblogs.com/willbin/p/3389837.html 官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html Unity3D性能优化专题性能优化是一个异常繁琐而又涉及到项目开发的方方面面的一个过程,它的本质是在运行时的一个时间里尽可能完美展现丰富的内容.实现优化可以通过优化资源.渲染.粒子.物理等模式:也可以通过修改模型大小.减…
为了性能优化,Unity会计算场景中所有的体积,包括静态的碰撞器并把 这些信息存在“Cash”中,对于静止物体而言,有了这些信息,就不需要 再每帧重新进行计算了.若移动,拉伸后或旋转了静态物体时,就是对其 静态碰撞器进行了相应的操作,Unity会再次重新计算静止的碰撞器,再 次上传到“Cash”中.重新计算“Cash”会占用资源.动态物体可以随意 移动,拉伸后旋转,而Unity不会重新上传任何碰撞体积到“Cash”中.在Unity中,我们移动碰撞器,我们只需要告诉Unity,哪些物体是动态的 .…
继前面介绍过ICON-FONT的制作后,找了几个ICON库都是国外的今天偶然发现阿里巴巴的图标矢量库,www.iconfont.cn用了之后感觉很强大,丰富的图标库(集合阿里妈妈&淘宝的图标库),还支持自己上传,关键还能生成你项目专用的CDN,速度不言而喻,支持国产.下面引用介绍 转载请注明来源:Web前端(W3Cways.com) - Web前端学习之路 » 阿里UX矢量图标库–最强大的矢量图标库(Icon font制作力荐工具) 使用SVG来代替Web Iconfont(图形字体化) 从最开…
Web前端性能优化WPO,相信大多数前端同学都不会陌生,在各自所负责的站点页面中,也都会或多或少的有过一定的技术实践.可以说,这个领域并不缺乏成熟技术理论和技术牛人:例如Yahoo的web站点性能优化黄金法则,以及大名鼎鼎的优化大师Steve Souders.本文并非一篇讨论性能优化技术方法的文章,而更多的是对中文站搜索List页面持续两年多的前端性能优化实践的思路总结.希望对正在从事这个领域研究的前端同学能有所帮助. 简单的说,我们的性能优化实践分为三个阶段:初探期.立规期.创新期, 每个阶段…
UGUI batch 规则和性能优化 (基础) Unity 绘图性能优化 - Draw Call Batching : http://docs.unity3d.com/Manual/DrawCallBatching.html 1.名词 1)Batch 单词 google 翻译的解释是:批量.批次. 2)Stats中的Batches参数:意思是batching后产生的批次数.(其实每一个批次就会调用一次DrawCall) 3)Unity官方文档中的batching是指batch操作和batchin…
紧接上一篇文章,继续渲染的优化问题,若有错误,请指出,让我也学习进步,谢谢. 如果游戏渲染问题来自CPU 概括的来说,CPU在一帧的渲染中的工作可以分为三个部分: . 决定谁需要被渲染 . 为GPU准备渲染指令 . 发送渲染指令给GPU 在每个部分中又有许多单独的任务,这些任务主要通过多个进程来执行.多进程确保渲染任务的并发执行,单个进程执行单个渲染任务,从而大大提高渲染性能.如果渲染任务被分配到多个进程进行,这就是多进程渲染. 在渲染中主要有三种进程:主进程,渲染进程和工作进程.主进程主要负责…