1

如果我使用 OpenGL ( GL_COMPRESSED_RGB_S3TC_DXT1_EXT) 压缩图像,然后读回 RAW 图像(OpenGL 为我解压缩它),我得到了某个图像。

如果我遵循 OpenGL 文档并编写自己的解压缩器,我的结果是相似的,但在某些地方,它们在 +/- 1 方面随机不同。我试图在 DXT 解压缩器的“颜色混合”期间对我的值进行四舍五入,但结果是仍然不正确。

是否可以修复,或者是GPU浮点运算导致的不可修复的错误,因此解压后的值不同。

4

1 回答 1

1

与往常一样,我会查看 +/-1 出现的位置是否有任何可预测的模式?正如您所说,这可能是一个精度错误,但需要查看代码以确定它是逻辑错误还是硬件可能错误。DXT 解压的实现取决于 GFX 卡,我在这里找到了一个可能有帮助的链接,它也有示例解压器的代码。

如果您仍然收到错误,请告诉我,一旦我在我的家用开发机器上,我可以在一夜之间查看它。

附录: 刚刚找到了我在 DXT 上寻找的英特尔资源:这里有一篇文章,这里来源。(直接链接到 zip 格式的源代码

于 2013-11-14T14:16:25.667 回答