常用纹理和纹理压缩格式

本文介绍了常见的纹理压缩格式,包括DXT1-DXT5的S3TC压缩,适用于Windows设备;ETC1-ETC2,广泛应用于移动平台,特别是Android设备;以及PVRTC,主要在iOS和使用PowerVR GPU的Android设备上使用。这些格式通过不同的压缩算法,以节省内存和提高渲染效率,但各自有不同的透明度支持和压缩质量。

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

转载至: http://blog.youkuaiyun.com/ynnmnm/article/details/44983545 by 夜风

简单纹理格式

  • RGBA8888 每个像素4字节,RGBA通道各占用8位
  • RGBA4444 每个像素2字节,RGBA通道各占用4位
  • RGB888 每个像素3字节,RGB通道各占用8位,无透明通道
  • RGB565 每个像素2字节,RGB通道各占用5/6/5位,无透明通道
  • RGBA5551 每个像素2字节,RGB通道各占用5位,透明通道1位,所以要么完全透明要么不透明

DXT纹理压缩格式

DXT纹理压缩格式来源于S3(Silicon & Software Systems)公司提出的S3TC(S3 Texture Compression),基本思想是把4x4的像素块压缩成一个64或128位的数据块,是有损压缩方式。DXT1-DXT5是S3TC算法的五种变化,用于各种Windows设备。

DXT1

DXT1格式主要适用于不具透明度的贴图或仅具一位Alpha的贴图(非完全透明则即完全不透明),对于完全RGB565格式的贴图,DXT1具有4:1的压缩比,即平均每个像素颜色占4位,虽然压缩比并不是很好,但是DXT的特性使得它更适合用于实时游戏之中。

DXT1将每4×4个像素块视为一个压缩单位,压缩后的4×4个像素块占用64位,其中有2个16位的RGB颜色和16个2位索引,格式描绘如下图所示: 
这里写图片描述

DXT1中的两个RGB颜色负责表示所在压缩的4×4像素块中颜色的两个极端值,然后通过线性插值我们可以再计算出两个中间颜色值,而16个2位索引则表明了这4×4个像素块所在像素的颜色值,2位可以表示4种状态,刚好可以完整表示color_0,color_1以及我们通过插值计算出的中间颜色值color_2和color_3,而对于具有一位Alpha的贴图,则只计算一个中间颜色值,color_3用来表示完全透明。

对于如何判断DXT1格式是表示不透明还是具有1位alpha的贴图,则是通过两个颜色值color_0和color_1来实现的,如果color_0的数值大于color_1则表示贴图是完全不透明的,反之则表示具有一位透明信息。因为只有一位 Alpha 信息,所以只能表示透明或不透明,因此DXT1的透明其实是一种镂空,利用网孔达到的透明效果,我们一般对画面质量要求不高并且不需要透明信息的图片使用这种格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值