【300.Unity内存优化】ID-315-001:图片压缩格式详解及优化(1)原理篇之不同平台的压缩格式

本文详细探讨了Unity中图片压缩格式的影响,包括不同平台的压缩算法,如RGBA32、RGB ETC 4bit,以及如何通过调整图片大小、色彩位数和使用压缩技术减小内存占用。Unity对图片格式的处理方式,如自动生成新的纹理类型,以及在Android设备上的兼容性问题。建议在Android上使用RGBA16格式以适应各种机型。此外,还介绍了纹理图集和压缩纹理格式(如PVRTC、ETC2、ASTC、DXTC)在优化内存和游戏性能方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

unity图片压缩格式和内存计算


例子1:使用RGBA 32bit真彩(Truecolor),占用内存 = 4Bytes*512*512 = 1MB;

例子2:使用RGB ETC 4bit压缩,占用内存 = 0.5Bytes*512*512 = 128KB

一、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和它一个意思。
2.总结
(1)图片格式描述
图片文件的存储格式:用于图片文件的存储和传输,通常在磁盘文件,内存以及网络传输中使用。
常用的图像文件格式有BMP,TGA,GIF,JPG(有损不透明),PNG(无损透明)等;
(2)纹理格式描述
显卡能够直接进行采样的纹理数据的格式:是向显卡中加载纹理时使用的数据格式。
常用的纹理格式有R5G6B5,A4R4G4B4,A1R5G5B5,R8G8B8, A8R8G8B8等。
占用空间:R5G6B5,A4R4G4B4,A1R5G5B5每个像素占用2个字节(BYTE),R8G8B8每个像素占用3个字节,A8R8G8B8每个像素占用4个字节。
RGBA Compressed PVRTC 4bits格式为PVRTC图片格式,它相当于把图片更改了压缩方式新生成了一个图片来替换原来的我们给的图片格式(比如我们给的是PNG格式)。

注意:U3D所有图片的压缩格式都会以另一种方式来存储,不会以你给的方式来存储,只有你指定了某种格式,它才会转成你要的格式。而且压缩格式在Android里并不一定有效,因为Android的机型多,GPU的渲染

unity图片压缩格式和内存计算

例子1:使用RGBA 32bit真彩(Truecolor),占用内存 = 4Bytes*512*512 = 1MB;

例子2:使用RGB ETC 4bit压缩,占用内存 = 0.5Bytes*512*512 = 128KB

一、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和它一个意思。
2.总结
(1)图片格式描述
图片文件的存储格式:用于图片文件的存储和传输,通常在磁盘文件,内存以及网络传输中使用。
常用的图像文件格式有BMP,TGA,GIF,JPG(有损不透明),PNG(无损透明)等;
(2)纹理格式描述
显卡能够直接进行采样的纹理数据的格式:是向显卡中加载纹理时使用的数据格式。
常用的纹理格式有R5G6B5,A4R4G4B4,A1R5G5B5,R8G8B8, A8R8G8B8等。
占用空间:R5G6B5,A4R4G4B4,A1R5G5B5每个像素占用2个字节(BYTE),R8G8B8每个像素占用3个字节,A8R8G8B8每个像素占用4个字节。
RGBA Compressed PVRTC 4bits格式为PVRTC图片格式,它相当于把图片更改了压缩方式新生成了一个图片来替换原来的我们给的图片格式(比如我们给的是PNG格式)。

注意:U3D所

unity图片压缩格式和内存计算

例子1:使用RGBA 32bit真彩(Truecolor),占用内存 = 4Bytes*512*512 = 1MB;

例子2:使用RGB ETC 4bit压缩,占用内存 = 0.5Bytes*512*512 = 128KB

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

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

三、U3D对于图片的格式是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值