Unity3D–Texture图片空间和内存占用分析
来源:互联网 发布:优秀的python开源项目 编辑:程序博客网 时间:2024/05/04 00:27
Unity3D–Texture图片空间和内存占用分析
Texture图片空间和内存占用分析。由于U3D并没有很好的诠释对于图片的处理方式,所以很多人一直对于图集的大小和内存的占用情况都不了解。在此对于U3D的图片问题做一个实际数据的分析。此前的项目都会存在这样或者那样的打包后包大小与内存占用情况的问题,所以这次所以彻彻底底得分析下U3D对于Texture的处理方式。程序里的内存优化请参考《Unity3d优化之路》。减少U3D包大小请参考《unity3d之如何将包大小减少到极致》。
我打包多种类型的项目,空项目和10张放在Resources文件夹中的图为比较案例。以下是比较数据。
IPHONE:
1.空项目—-空间占用量42.3MB—-IPA大小10MB
2.10张1200*520无压缩Texure 单张图占用量2.8MB—-空间占用量70.2MB—-IPA大小22.9MB
3.10张1200*520压缩成1024*1024PVRTC4 单张图占用量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对于图片的格式是自己生成的,而并不是你给他什么格式,他就用什么格式,一张1024*1024图在无压缩格式下,它会被U3D以无压缩文件形式存放,也就是说U3D里的Texture Preview里显示的占用大小**MB不只是内存占用大小,还是空间占用大小。如下图所示:
U3D的内部机制为自动生成图片类型来替换我们给的图片,在图片的压缩方式上需要进行谨慎的选择。
压缩格式在U3D的Component Reference里有介绍我就不再详细介绍,只介绍几个重点的:
RGBA32格式为无压缩最保真格式,但也是最浪费内存和空间的格式。Automatic Turecolor和它一个意思。
RGBA16格式为无压缩16位格式,比32位节省一半的空间和内存。Automatic 16bits和它一个意思。
RGBA Compressed PVRTC 4bits格式为PVRTC图片格式,它相当于把图片更改了压缩方式新生成了一个图片来替换原来的我们给的图片格式(比如我们给的是PNG格式)。
注意:U3D所有图片的压缩格式都会以另一种方式来存储,不会以你给的方式来存储,只有你指定了某种格式,它才会转成你要的格式。而且压缩格式在Android里并不一定有效,因为Android的机型多,GPU的渲染方式也不一样,有的是Nvidia,有的是PowerVR,最最好的在安卓机子上启用RGBA16方式,因为这个是适应所有机型的,并且比32位占用量少一半,但也需要因项目而异,只是推荐使用的格式,可以多用。
- Unity3D–Texture图片空间和内存占用分析
- Unity3D–Texture图片空间和内存占用分析
- Unity3D–Texture图片空间和内存占用分析
- Unity3D–Texture图片空间和内存占用分析
- Unity3D–Texture图片空间和内存占用分析
- Unity3D:Texture图片空间和内存占用分析
- 【Unity3D游戏开发】性能优化之Texture图片空间和内存占用分析(三七)
- Unity3D 图片空间和内存占用分析
- unity优化《二》--Texture图片空间和内存占用分析
- Android图片占用内存分析
- 关于电脑DLL占用内存 和 空间!
- 系统和压缩内存占用空间大
- Android图片占用内存全面分析
- Unity3d Mesh、Texture、UI 压缩降低内存
- Unity3D占用内存太大解决办法
- C++中类对象的内存布局和占用空间
- C++中类对象的内存布局和占用空间
- C++中类对象的内存布局和占用空间
- Unity3D之如何将包大小减少到极致 发表于2014年6月6日由陆泽西 Unity3D之如何将包大小减少到极致,图片是游戏app里最最占空间的资源,所以请各位还没有理解u3d对图片文件存储方式理解
- Unix和Windows区别
- 数据结构_查找二叉树中值为key的节点,并将指针指向该节点_C语言源代码
- linux问题
- 接口 Iterator<E> 与 接口 Iterable<T>
- Unity3D–Texture图片空间和内存占用分析
- unix与linux的区别
- Unity3d优化之路
- Linux-C高级编程(1)文件操作(一)
- Unity PlayerPrefer
- Android 百度地图 SDK v3.0.0 (一)
- 批量修改Texture属性 两种方式加载贴图,通过Resources.LoadAll Directoy 获取项目路径:Application.dataPath; using UnityEn
- 1007. Maximum Subsequence Sum (25)
- Afaria服务器为Windows Mobile设备添加注册表数据