unity texture 占用内存大小对比
打包多种类型的项目,空项目和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 占用内存大小对比的更多相关文章
- 【转载】Unity 优雅地管理资源,减少占用内存,优化游戏
转自:星辰的<Unity3D占用内存太大的解决方法> 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D ...
- Unity3D占用内存太大的解决方法
原地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大 ...
- (转)Unity3D占用内存太大的解决方法
自:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. ...
- Unity3D占用内存太大怎么解决呢?
最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个 ...
- Unity中的内存泄漏
在对内存泄漏有一个基本印象之后,我们再来看一下在特定环境——Unity下的内存泄漏.大家都知道,游戏程序由代码和资源两部分组成,Unity下的内存泄漏也主要分为代码侧的泄漏和资源侧的泄漏,当然,资源侧 ...
- [翻译]理解Unity的自动内存管理
当创建对象.字符串或数组时,存储它所需的内存将从称为堆的中央池中分配.当项目不再使用时,它曾经占用的内存可以被回收并用于别的东西.在过去,通常由程序员通过适当的函数调用明确地分配和释放这些堆内存块.如 ...
- 如何解决audiodg占用内存高(停止与重启audiodg服务)
window7电脑audiodg.exe进程占用内存很高 首先想到的办法是结束该进程,于是在任务管理器里结束进程后,内存是释放了,但是发现发现电脑没有声音 去到电脑的system32目录下双击audi ...
- Android Bitmap占用内存计算公式
Android对各分辨率的定义 当图片以格式ARGB_8888存储时的计算方式 占用内存=图片长*图片宽*4字节 图片长 = 图片原始长 (设备DPI/文件夹DPI) 图片宽 = 图片原始宽(设备D ...
- 关于Java占用内存的研究
最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验简要说一下,相信会对大家写出优质的程序有所帮助下面的论述针对32位系统,对64位系统不适用,后叙 经常你写了一个程序,一测试,功能没 ...
随机推荐
- Day05_24_继承
继承 什么是继承? 继承本质上是对某一批类的抽象,从而实现对现实世界更好的建模.继承是类和类之间的一种关系,除此之外类和类之间的关系还有依赖.组合.聚合等. 继承就是子类(派生类)继承父类(基类)的特 ...
- Scrapy 爬虫项目框架
1. Scrapy 简介 2. Scrapy 项目开发介绍 3. Scrapy 项目代码示例 3.1 setting.py:爬虫基本配置 3.2 items.py:定义您想抓取的数据 3.3 spid ...
- Oralce注入 bypass waf出数据
发存货: 探测banner 版本号: ' and (SELECT banner FROM v$version where rownum=1) like 'O%' and '1'like'1 rownu ...
- SpringCloud(七)Stream消息驱动
Stream消息驱动 概述 屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型 官网:https://cloud.spring.io/spring-cloud-static/spring-cl ...
- sublimeText常用插件
扩展包: EmmetAlignmentDocBlockrSideBarEnhancementsFileDiffsColorsublimelocalizationAutoFileNameA File ...
- js弹窗的3种方式:alert、confirm、prompt
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Webuploader 简单图片上传 支持多图上传
简介: 通过webuploader 实现简单的图片上传功能,支持多张图上传 官方文档传送门:http://fex.baidu.com/webuploader/getting-started.html# ...
- poj2175费用流消圈算法
题意: 有n个建筑,每个建筑有ai个人,有m个避难所,每个避难所的容量是bi,ai到bi的费用是|x1-x2|+|y1-y2|+1,然后给你一个n*m的矩阵,表示当前方案,问当前避难方案是否 ...
- 1.简单认识PHP和环境搭建
1.关于PHP PHP(Hypertext Perprocessor,超文本预处理器),是一种服务器端.跨平台.HTML嵌入式的脚本语言,其独特的语法混合了C.Java.和Perl语言的特点,是一种被 ...
- Qt链接MySQL发布后Drive not loadedDrive not loaded怎么办
缺少动态链接库!把MySQL文件夹下面带dll.lib的全复制进去就行了