Unity3D开发性能优化

转载 2016年08月30日 10:35:14

原文链接:http://blog.csdn.net/yesy10/article/details/7861236

1、顶点性能

      一般来说,如果您想在iPhone 3GS或更新的设备上每帧渲染不超过40,000可见点,那么对于一些配备 MBX GPU的旧设备(比如,原始的 iPhone,如 iPhone 3g和 iPod Touch第1和第2代)来说,你应该保证每帧的渲染顶点在10000以下。

2、光照性能

      像素的动态光照将对每个受影响的像素增加显著的计算开销,并可能导致物体会被渲染多次。为了避免这种情况的发生,您应该避免对于任何单个物体都使用多个像素光照,并尽可能地使用方向光。需要注意的是像素光源是一个渲染模式(Render Mode)设置为重要(Important)的光源。像素的动态光照将对顶点变换增加显著的开销。所以,应该尽量避免任何给定的物体被多个光源同时照亮的情况。对于静态物体,采用烘焙光照方法则是更为有效的方法。

3、角色

      每个角色尽量使用一个Skinned Mesh Renderer,这是因为当角色仅有一个 Skinned Mesh Renderer 时, Unity 会 使用可见性裁剪和包围体更新的方法来优化角色的运动,而这种优化只有在角色仅含有一个 Skinned Mesh Renderer 时才会启动。角色的面数一般不要超过1500,骨骼数量少于30就好,角色Material数量一般1~2个为最佳。

4、静态物体

      对于静态物体定点数要求少于500,UV的取值范围不要超过(0,1)区间,这对于纹理的拼合优化很有帮助。不要在静态物体上附加Animation组件,虽然加了对结果没什么影响,但是会增加CPU开销。

 5、摄像机

      将远平面设置成合适的距离,远平面过大会将一些不必要的物体加入渲染,降低效率。另外我们可以根据不同的物体来设置摄像机的远裁剪平面。Unity 提供了可以根据不同的 layer 来设置不同的 view distance ,所以我们可以实现将物体进行分层,大物体层设置的可视距离大些,而小物体层可以设置地小些,另外,一些开销比较大的实体(如粒子系统)可以设置得更小些等等。

6、DrawCall

      尽可能地减少 Drawcall 的数量。 IOS 设备上建议不超过 100 。减少的方法主要有如下几种: Frustum Culling ,Occlusion Culling , Texture Packing 。 Frustum Culling 是 Unity 内建的,我们需要做的就是寻求一个合适的远裁剪平面;Occlusion Culling ,遮挡剔除, Unity 内嵌了 Umbra ,一个非常好 OC 库。但 Occlusion Culling 也并不是放之四海而皆准的,有时候进行 OC 反而比不进行还要慢,建议在 OC 之前先确定自己的场景是否适合利用 OC 来优化; Texture Packing,或者叫 Texture Atlasing ,是将同种 shader 的纹理进行拼合,根据 Unity 的 static batching 的特性来减少 draw call 。建议使用,但也有弊端,那就是一定要将场景中距离相近的实体纹理进行拼合,否则,拼合后很可能会增加每帧渲染所需的纹理大小,加大内存带宽的负担。这也就是为什么会出现“ DrawCall 降了,渲染速度也变慢了”的原因。

Unity3D性能优化之开发性能优化

1、顶点性能 一般来说,如果您想在iPhone 3GS或更新的设备上每帧渲染不超过40,000可见点,那么对于一些配备 MBX GPU的旧设备(比如,原始的 iPhone,如 iPhone 3g...
  • kobbbb
  • kobbbb
  • 2013年06月25日 12:31
  • 1843

Unity3D开发之性能优化

最近在找这方面的资料,下面是找到的比较不错的文章,直接链接吧~ http://blog.sina.com.cn/s/blog_796ffec50100vodq.html http://rav...
  • lihandsome
  • lihandsome
  • 2013年11月19日 11:25
  • 1007

unity3D开发性能优化

1、顶点性能       一般来说,如果您想在iPhone 3GS或更新的设备上每帧渲染不超过40,000可见点,那么对于一些配备 MBX GPU的旧设备(比如,原始的 iPhone,如 iPh...
  • fanglrui
  • fanglrui
  • 2013年03月08日 11:16
  • 505

Unity3D开发性能优化

1、顶点性能       一般来说,如果您想在iPhone 3GS或更新的设备上每帧渲染不超过40,000可见点,那么对于一些配备 MBX GPU的旧设备(比如,原始的 iPhone,如 iPh...
  • SWEJackies
  • SWEJackies
  • 2013年10月01日 14:28
  • 638

Unity3D-性能优化最佳实践(一)分析(Profiling)

作者: Ian    翻译: Kelvin Lo / 海龟 原文地址:http://gad.qq.com/article/detail/7192224 Profiling - 分析...
  • pz789as
  • pz789as
  • 2017年06月08日 11:24
  • 718

Unity3D开发之Unity3D性能优化总结

一、程序方面   01、务必删除脚本中为空或不需要的默认方法;   02、只在一个脚本中使用OnGUI方法;   03、避免在OnGUI中对变量、方法进行更新、赋值,输出变量建议在Updat...
  • lihandsome
  • lihandsome
  • 2013年11月08日 17:41
  • 758

unity3d性能优化汇总

Harlan1009 博客园首页新随笔联系订阅管理 随笔- 9 文章- 0 评论- 0  【整理】unity3d优化总结篇 对项目优化有很多,如...
  • yxriyin
  • yxriyin
  • 2014年12月01日 16:50
  • 2766

Unity中的性能优化

Unity中的性能优化 ++Profiler分析器 ++++通过分析器分析哪部分内容急需优化: #1、 CPU优化 ++1.1、CPU优化分类 ++++CPU优化: --DrawCalls -...
  • VRunSoftYanlz
  • VRunSoftYanlz
  • 2018年02月04日 20:54
  • 34

Unity3D性能优化 (五)——UI

一、DrawCall优化 ①UI层级 三张图对比发现场景中UI的数目一样,布局有变化,导致了其DrawCall数目不一样。当出现重叠时,会影响空间拓扑关系,从而影响了Unity对DrawCall的...
  • PirateCode
  • PirateCode
  • 2016年08月27日 12:13
  • 3292

Unity3D性能优化总结

一、程序方面   01、务必删除脚本中为空或不需要的默认方法;   02、只在一个脚本中使用OnGUI方法;   03、避免在OnGUI中对变量、方法进行更新、赋值,输出变量建议在Update内...
  • dj0379
  • dj0379
  • 2014年05月28日 10:21
  • 6121
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity3D开发性能优化
举报原因:
原因补充:

(最多只允许输入30个字)