1

OpenGL ( GL_COMPRESSED_RGB_S3TC_DXT1_EXT) を使用して画像を圧縮してから RAW 画像を読み戻すと (OpenGL で解凍してください)、特定の画像が得られました。

OpenGL のドキュメントに従って独自のデコンプレッサを作成すると、結果は似ていますが、特定の場所では +/- 1 の点でランダムに異なります。DXT デコンプレッサでの「カラー ブレンディング」中に値を丸めようとしましたが、結果はまだ間違っています。

修復できますか、それとも GPU 浮動小数点演算が原因で修復不可能なエラーが発生したため、解凍された値が異なります。

4

1 に答える 1

1

いつものように、+/-1 が発生する場所に予測可能なパターンがあるかどうかを確認しますか? あなたが言うように、それは精度エラーかもしれませんが、コードを調べて、論理エラーかハードウェアの可能性のあるエラーかを確認する必要があります。DXT 解凍の実装は、GFX カードに応じて異なります。参考になるリンクを見つけましたまた、解凍プログラムの例のコードもあります。

それでもエラーが発生する場合はお知らせください。自宅の開発マシンに戻ったら、一晩中確認できます。

補遺: 探していた Intel リソースを DXT で見つけたところです。記事はこちら、ソースはこちらです。( zip 形式のソースコードへの直接リンク)

于 2013-11-14T14:16:25.667 に答える