[置顶] Unity的优化系列1 - 图形优化

孙广东   2016.5.21


为什么我游戏包这么大?

为什么在我手机上的发热量这么严重?

为什么我的游戏加载时间如此之高?

如何减少我游戏包的大小?


有很多东西是我们可以关注的,让我们看到什么占用最大。要进行检查,首先我们需要打开Editor Log

如果你不知道如何打开Editor Log访问以下链接

http://docs.unity3d.com/Manual/LogFiles.html


Unity的官方文档中描述:

       "该日志提供 Assets 类别分列的摘要,然后列出所有的每个 Assets 占用大小的顺序。通常情况下,事情像纹理、 音效和视频会占用了大多数存储空间,而脚本、 场景和着色器往往可以忽略不计。"


这是清晰可见从下面的图片


此数据实际上是从一个2D 游戏截取的。如上所示,Textures/Graphics 占用了占用最大

因此,GraphicsCompression(图形压缩 最应该重视)。


那么,什么是纹理压缩?

Wiki的定义是:

              纹理压缩  是一种专为在三维计算机图形渲染系统中存储纹理而使用的图像压缩技术。与普通图像压缩算法的不同之处在于,纹理压缩算法为纹素的随机存取做了优化。https://zh.wikipedia.org/zh-cn/%E7%BA%B9%E7%90%86%E5%8E%8B%E7%BC%A9


  • 最受欢迎的压缩的格式,如PNGJPG (我们通常使用在我们的游戏) 不能直接由 GPU 解码。因此,首先,他们需要将它们复制到 GPU 内存之前解压缩。解压缩的纹理需要时间,导致增加加载时间。
  • 更好的选择是使用硬件加速格式。这些格式是有损,但是有刚刚说的GPU优势
  • 这意味着,他们不需要复制之前解压缩 减少加载时间,因为硬件优化, 提高性能。
  • 有许多类型的压缩格式, ETC1, ASTC, DXT1, DXT5, PVRTC, ATC  以及更多。将常见的压缩的格式jpg,png转换为硬件加速格式这个过程被称为纹理压缩


基本上,这些硬件加速的格式帮助改善性能、 电池寿命和减少设备发热,同时还消耗更少的能源要求更少的带宽.


这个链接是关于 纹理压缩的更全面介绍:


http://renderingpipeline.com/2012/07/texture-compression/


但我应该使用哪种压缩?

         这取决于在什么样的设备上。并不是所有的硬件压缩的格式都支持所有设备。

让我们首先看看表,不同的设备支持的格式。

有两种类别的硬件加速格式,即标准 专有。


以下是标准的格式

计算机生成了可选文字:
ETCI 
ETC2 
ASTC 
Supported on all Android devices with OpenGL ES 2.0 and above. 
Does not support alpha channel. 
Requires OpenGL ES 3.0 and above. 
Higher quality than ETCI and ETC2. Supported with the Android 
Extension Pack.


以下是专有的格式

计算机生成了可选文字:
ATC 
PVRTC 
DXTI 
S3TC 
Available with Adreno GPI-J. 
Available with a PowerVR GPI-J. 
S3 DXTI texture compression. Supported on devices running 
Nvidia Tegra platform. 
S3 texture compression, nonspecific to DXT variant. Supported 
on devices running Nvidia Tegra platform.

 

         让我们先看一个例子来更好地理解压缩 它如何进行的;     UI 例子 如下图所示 ︰

start-playing


           主要看这个背景图像,选择背景图像将能够看到如下图所示 (在Inspectors面板上) 。 此大小是默认情况下 (无压缩设置为真彩色) ︰

[置顶] Unity的优化系列1 - 图形优化_第1张图片


        这里的大小显示 8.0 mb

Inspector面板显示设置如下图 ︰


Inspector


开始吧:

              现在设置纹理类型为Advanced。取消选择Generate MipMaps。选择Override forAndroid (这将允许自定义压缩)  并选择格式作为RGBA Compressed DXT5


现在再看一看下面的图片 ︰

Compressed Background


              图像大小从 8.0 mb   到了 2.0 mb

现在在 试一试  ETC Compression 格式:

选择格式作为 RGBCompressed ETC 4 bits

你可能感兴趣的:(unity,优化系列,图形优化)