栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity 计算图片真实存储大小(Preview视图)

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity 计算图片真实存储大小(Preview视图)

分析图片导入unity后,该图片所占存储大小,如有错误,请多指教。

问题:一张图片导入unity,那么这张图片打包apk,占用包体多大空间呢。

经过测试

一张16M(文件属性大小) 分辨率4096x4096的图片,最终进入包体的大小,可以是2M,3M。

一张10.5K (文件属性大小) 分辨率4096x4096的图片,最终进入包体的大小,可以是8M,10M

所以,图片本身大小(文件属性大小),是不会影响包体大小

原因是,png,jpg等图片格式,在导入的时候,Unity都会转化成自己的格式,所以这张图片的大小取决于unity的设置,主要有两个设置,Max Size和Format。

图片中有分辨率,压缩格式,和大小,这里分别解释一下。

分辨率

这个应该都知道怎么回事,水平和垂直方向各有多少个像素。这里说一点,看到上方的Max Size 这个设置,指的是这个图片最大的分辨率是多少,

  • 例如2048:2048x2048,这个值会影响图片大小,如果图片原始大小为4096x2048,那么这张图片分辨率就会被压缩到2048*1024,使用最大分辨率等比例缩放。
  • 当然如果原始图小于设置的值,例如1000x1000,那么这张图片就不会有改动
压缩格式

对这张图片使用的压缩格式,压缩格式有很多,如ETC2 、PVRTC 、DTX5等,压缩格式的理解是:每一个像素占用多少个字节,上面图片中,我选择的是ETC2 8bits,

指的就是每一个像素占用多少个字节(bytes/pixel)。

大小

最后就是计算图片存储大小,分辨率x压缩格式字节大小=存储大小。(不要勾选Mip Maps)

例如:2048x2048x8bits(压缩格式) / 8(一个字节8bits) / 1024=4096KB=4MB

例如:1024x512x4bits(压缩格式 ETC2 4bits) / 8(一个字节8bits) / 1024=256KB=0.25MB

如果不知道压缩格式是多少bits,在Unity官网压缩格式中可找到

Unity - Manual: Recommended, default, and supported texture formats, by platformhttps://docs.unity3d.com/Manual/class-TextureImporterOverride.html

最后需要注意几点

Android

  1. 分辨率宽、高必须是4的倍数,才能被正确压缩,才能使用对用的压缩bits计算
  2. 如果宽、高有一方不是4的倍数,压缩格式就会被回退到RGBA 32bits(如果是JPG,则会回退到RGB24bits,这要看图片属性的位深度是24,还是32),计算方式一致。这一点要尤为注意,可能就是包体过大的原因
  3. 如果不是4的倍数,Unity则会警告:只有宽度/高度为4倍的纹理才可以压缩为DXT1格式

IOS

分辨率如果不是2的幂次方也不能正常压缩 ,同时报警告  (NPOT指的就是 非2的幂)

Only POT texture can be compressed to PVRTC format  只有POT纹理可以压缩到PVRTC格式

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901263.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号