41.纹理像素格式RGBA32与RGB24及Alpha8R8R16含义
41.1 题目
RGBA32、RGB24、Alpha8、R8、R16 分别代表什么?(以常见内存占用理解为例)
41.2 深入解析
这些名字在说什么
都表示未压缩 RAW 纹理下,每个像素占多少位、几个通道、每通道多少位。实际工程里还会选 GPU 块压缩(BC、ETC2、ASTC),包体、显存、内存与下表不是同一套数,但面试问「字母含义」按位深与通道答即可。
格式对照(含 1024×1024 粗算)
| 格式 | 通道与位深 | 典型每像素 | 1024×1024 未压缩粗算 |
|---|---|---|---|
| RGBA32 | R、G、B、A 各 8 bit,共 32 bit | 4 字节 | 约 4×1024×1024 B ≈ 4MB |
| RGB24 | R、G、B 三通道各 8 bit,共 24 bit(无 Alpha) | 3 字节 | 约 3MB |
| Alpha8 | 仅 Alpha 8 bit | 1 字节 | 约 1MB |
| R8 | 单通道 8 bit,灰度或任意单标量 | 1 字节 | 约 1MB |
| R16 | 单通道 16 bit | 2 字节 | 约 2MB,适合需要更高精度的单通道(高度、部分深度数据、曲线遮罩等) |
易错点
- RGB24 是三个颜色通道,不是「四通道少一个」这种口语误会;原文若写「RGB 四通道」属于笔误,应为三通道。
- R16:精度比 R8 高一档,带宽与显存也翻倍,用在真需要的地方。
与压缩纹理的关系
- 编辑器里选的 DXT/BC、ETC2、ASTC 等,是块压缩,单像素不再按上面字节线性算;面试若追问「为什么包里才几百 KB」,要转到压缩格式 + mip 来解释。
41.3 答题示例
这些名字讲的是每像素多少位、几个通道。
可以按个报:RGBA32:四通道各 8 位,一像素 4 字节,1024 图未压缩大约 4MB。RGB24:RGB 三个通道各 8 位,没有 A,一像素 3 字节,大约 3MB。Alpha8:只存 Alpha,1 字节一像素,大约 1MB。R8:单通道 8 位,也是 1MB 量级。R16:单通道 16 位,一像素 2 字节,大约 2MB,用来做需要精度的单通道数据。
最后补一句:真进项目还要看 GPU 压缩格式,不能拿 RAW 去对包体大小。
41.4 关键词联想
- 位深与通道
- RAW 与 GPU 压缩
- R16 与高精度单通道
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com