为什么灰度图用G(绿色)通道?
经典的压缩格式(例如 DXTC/BC1)对三个颜色通道的位数分配通常是 5:6:5,绿色通常保有稍高的精度,所以把“最重要”的单通道数据放 G 能保留更多细节/精度 (影响画质) .
在常见的纹理压缩与显色表示里,绿色通道通常保有比红/蓝更多的有效位或更高的“可见精度”,把最需要细节的灰度图(例如 roughness / AO 等细节丰富的掩码)放 G 能在压缩后保留更多细节。除此之外,历史上人眼对绿色更敏感也是一个直观理由。
压缩格式的位深分配
许多常见的块压缩(S3/BCn)在 RGB 存储上会出现 5:6:5 之类的分配 —— 绿色比红和蓝多 1 位(即在某些格式里绿通道有更多可能的离散值),因此把需要更高精度的灰度图放在 G,压缩后看起来更平滑、噪点更少。人眼对绿色更敏感(感知理由)
视觉系统对绿色波段更敏感,细微变化更容易被察觉。把“最重要”的信息放在绿通道,有时能在主观画质上获得更好效果。行业惯例 / 引擎约定
因为上述两个原因,很多美术/程序流程(Substance Painter、Unreal、Unity 社区示例)都把 roughness/occlusion/metal 等按习惯打包到特定通道(常见:R = AO / G = Roughness / B = Metallic,或类似变体),这也方便团队协作与管线一致性。注意事项(实用建议)
这不是说“读 G 比读 R 更省性能”——GPU 采样一次会把整张纹理读入(采样成本主要来自纹理数量与分辨率、压缩格式、内存带宽),所以性能优势来自于合并通道减少采样次数,而不是单纯选哪个颜色通道。
如果需要最高精度,可以用支持更好质量的压缩(例如 BC7)或单通道纹理(R8/G8)来保存灰度信息。