首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DXT3 (BC2)压缩格式alpha数据

DXT3 (BC2)压缩格式alpha数据
EN

Stack Overflow用户
提问于 2016-12-06 12:04:19
回答 1查看 280关注 0票数 0

我试图从dds文件中读取图像信息。我设法使DXT1和DXT5格式正常工作,但是对于DXT3格式的alpha数据(也称为BC2),我有一个问题。当查看压缩BC2块的布局时,它显示16像素块的alpha数据存储在数据的前8个字节中,每个值占用4位。

这是否意味着,由于存储的alpha值只能为0-15,实际的alpha数据计算如下:

代码语言:javascript
复制
unsigned char bitvalue = GetAlphaBitValue(); // assume this works and gets the 4-bit value i am looking for
unsigned char alpha = (bitvalue / 15.0f) * 255;

这是对的,还是我看错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-06 15:23:17

本规范似乎就是这么说的:

块中位置(x,y)处的texel的alpha组件是 α(x,y) / 15。

因为结果应该是0 ..1,而不是0。255。

由于255可以被15除,所以将转换为0可能更容易一些。255作为

代码语言:javascript
复制
uint8_t alpha = bitvalue * 17;

现在更明显的是,正在进行的是通常的“复制”映射(就像CSS短颜色代码一样),它提供了一个很好的输出值的扩展(允许对最小值和最大值进行编码,并且在所有值之间具有相同的步骤)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40994977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档