打包多种类型的项目,空项目和10张放在Resources文件夹中的图为比较案例。以下是比较数据。

IPHONE:

1.空项目----空间占用量42.3MB----IPA大小10MB

2.10张1200*520无压缩Texure 单张图占用量2.8MB----空间占用量70.2MB----IPA大小22.9MB

3.10张1200520压缩成10241024PVRTC4 单张图占用量0.5MB----空间占用量47.3MB----IPA大小13.2MB

4.10张1024*1024无压缩Texture 单张图占用量4MB----空间占用量82.3MB----IPA大小14.6MB

5.10张1024*1024压缩为PVRTC4格式 单张图占用量0.5MB----空间占用量47.3MB----IPA大小11.6MB

宗上数据总结:

一、2的N次方大小的图片会得到引擎更大的支持,包括压缩比率,内存消耗,打包压缩大小,而且支持的力度非常大。

二、减小图片的占用大小和内存方式有:图片大小变化(Maxsize),色彩位数变化(16位,32位),压缩(PVRC)。

三、U3D对于图片的格式是自己生成的,而并不是你给他什么格式,他就用什么格式,一张10241024图在无压缩格式下,它会被U3D以无压缩文件形式存放,也就是说U3D里的Texture Preview里显示的占用大小*MB不只是内存占用大小,还是空间占用大小。

  缩减贴图占用内存

  注意,贴图资源占用内存大小不等于文件大小,而是与资源导入设置有关。同一个导入设置则只与资源宽高尺寸有关,与资源原始文件格式无关。在进行安装包大小瘦身时,已针对各种应用场景,有损或无损的缩减贴图资源大小。由于资源加载后占用内存大小与安装包打包前资源大小一致,所以安装包瘦身实际上也是在减少贴图资源占用内存大小。

  举个例子:一张512x512贴图。

  使用RGBA 32bit真彩,占用内存 = 4Bytes*512*512 = 1MB;

  使用RGB ETC 4bit压缩,占用内存 = 0.5Bytes*512*512 = 128KB。

  具体的压缩选型和操作细节,可参考菜鸟在线官网Unity3D游戏开发课程讲解。注意:某些压缩方式是无损的,某些是有损的,开发者应按需采用。

官方:https://docs.unity3d.com/Manual/class-TextureImporterOverride.html

注意:在不支持ETC2的iOS和tvOS设备上,纹理在运行时未压缩到RGBA32。在不支持ETC2的Android平台上,纹理在运行时解压缩为Build Settings中ETC2 fallback指定的格式。

比如: ETC2 ARGB/RGB 4bit 使用图片不是4的倍数就会使用Build Settings中ETC2 fallback指定的格式。

出现结果如下图:

部分数据来源:移动端纹理压缩格式

https://www.cnblogs.com/zsb517/p/6297739.html

在分享一篇 :http://blog.sina.com.cn/s/blog_5b6cb9500102vi6i.html 此文详细分析了资源内存大小 和 不同情况下不同平台常用压缩 方式 注意 正方贴图和非正方贴图 这些前提条件

IOS

常用的PVRTC4,压缩之后的大小为:1024 * 1024 * 4 bit = 0.5MB
除了压缩内存,PVR可以直接被显卡读取,载入速度更快;缺点是PVR需要PowerVR芯片支持,目前iOS设备都能完美支持,Android支持尚少;此外,PVRTC4只支持方形贴图,非方形会被处理成方形,且长宽必须为2的幂。
 https://blog.csdn.net/xufeng0991/article/details/51942289

压缩用途:

Unity官网对每个平台默认的纹理压缩格式以及使用建议给出了详细描述,需要注意的是:在不同移动GPU平台下选择GPU支持的压缩纹理,就可以在不需要CPU解压的情况下直接被GPU采样,节省CPU内存和带宽,也可以节省存储的体积。如果目标平台不支持设置的压缩格式,纹理将解压为RGBA32或者RGB24,浪费CPU时间和内存。

https://blog.csdn.net/taoqilin/article/details/82692759

unity texture 占用内存大小对比的更多相关文章

  1. 【转载】Unity 优雅地管理资源,减少占用内存,优化游戏

    转自:星辰的<Unity3D占用内存太大的解决方法> 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D  ...

  2. Unity3D占用内存太大的解决方法

    原地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大 ...

  3. (转)Unity3D占用内存太大的解决方法

    自:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大.  ...

  4. Unity3D占用内存太大怎么解决呢?

    最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个 ...

  5. Unity中的内存泄漏

    在对内存泄漏有一个基本印象之后,我们再来看一下在特定环境——Unity下的内存泄漏.大家都知道,游戏程序由代码和资源两部分组成,Unity下的内存泄漏也主要分为代码侧的泄漏和资源侧的泄漏,当然,资源侧 ...

  6. [翻译]理解Unity的自动内存管理

    当创建对象.字符串或数组时,存储它所需的内存将从称为堆的中央池中分配.当项目不再使用时,它曾经占用的内存可以被回收并用于别的东西.在过去,通常由程序员通过适当的函数调用明确地分配和释放这些堆内存块.如 ...

  7. 如何解决audiodg占用内存高(停止与重启audiodg服务)

    window7电脑audiodg.exe进程占用内存很高 首先想到的办法是结束该进程,于是在任务管理器里结束进程后,内存是释放了,但是发现发现电脑没有声音 去到电脑的system32目录下双击audi ...

  8. Android Bitmap占用内存计算公式

    Android对各分辨率的定义 当图片以格式ARGB_8888存储时的计算方式 占用内存=图片长*图片宽*4字节 图片长 = 图片原始长 (设备DPI/文件夹DPI)  图片宽 = 图片原始宽(设备D ...

  9. 关于Java占用内存的研究

    最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验简要说一下,相信会对大家写出优质的程序有所帮助下面的论述针对32位系统,对64位系统不适用,后叙 经常你写了一个程序,一测试,功能没 ...

随机推荐

  1. 【DB宝49】Oracle如何设置DB、监听和EM开机启动

    目录 一.Windows系统 二.Linux系统 方法1:配置/etc/rc.d/rc.local文件(推荐) 方法2:配置service服务 三.Oracle 18c版本 四.总结 一.Window ...

  2. python读取excel数据为json格式(兼容xls\xlsx)

    做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...

  3. Laravel 队列功能 简单应用

    生成任务类 默认情况下,应用程序的所有可排队任务都存储在 app/Jobs 目录下.如果 app/Jobs 目录不存在,则会在运行 make:job Artisan 命令时将创建它.你可以使用 Art ...

  4. 【参数校验】 自定义校验器 (实现ConstraintValidator)

    日常工作中写接口时,往往需要校验前端传来的枚举状态码,例如"1","2"等等, 这里使用java 303规范的参数校验框架封装一个自定义参数校验器: /** * ...

  5. 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析

    前言 在本系列的文章中,对每一个病毒分析的最后一个部分,若无特殊情况,我都会采用逆向分析的手段来为读者彻底剖析目标病毒.但是之前的"熊猫烧香"病毒,我用了三篇文章的篇幅(每篇250 ...

  6. (转)Amazon Aurora MySQL 数据库配置最佳实践

    转自:https://zhuanlan.zhihu.com/p/165047153 Amazon Aurora MySQL 数据库配置最佳实践 AWS云计算 ​ 已认证的官方帐号 1 人赞同了该文章 ...

  7. Django中图形验证码(django-simple-captcha)

    django-simple-captcha 在网站开发的登录页面中,经常会需要使用到图形验证码来验证.在Django中,django-simple-captcha库包提供了图形验证码的使用. 下面我们 ...

  8. Day009 二维数组

    多维数组 多维数组是数组的嵌套(数组的元素是数组,数组的数组元素的元素是数组...),比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][]=new int ...

  9. python主线程捕获子线程异常

    python内置threading.Thread类创建的子线程抛出的异常无法在主线程捕获,可以对该类进行优化,为子线程添加exit code属性,主线程通过获取子线程的返回状态,来判断子线程中是否发生 ...

  10. Asp.NetCore Web开发之初始文件解析

    在写代码之前,有必要了解一下.net帮我们生成的文件都是干什么用的,在开发过程中他们都负责那些地方(下面以MVC模板举例). 先简单介绍一下什么是MVC,MVC(model-view-controll ...