我正在尝试从 dds 文件中读取图像信息。我设法让 DXT1 和 DXT5 格式正常工作,但是我对 DXT3 格式(也称为BC2)的 alpha 数据有疑问。查看压缩BC2 块的布局时,它显示 16 像素块的 alpha 数据存储在数据的前 8 个字节中,每个值占用 4 位。
这是否意味着,由于存储的 alpha 值只能是 0-15,所以实际的 alpha 数据计算如下:
unsigned char bitvalue = GetAlphaBitValue(); // assume this works and gets the 4-bit value i am looking for
unsigned char alpha = (bitvalue / 15.0f) * 255;
这是正确的,还是我看错了?