DXT4とDXT5
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/14 03:44 UTC 版)
DXT4とDXT5は16ピクセル入力から128ビットデータに変換する。このデータには64ビットの色データ(DXT2ないしDXT3と同じ方法でエンコードされたもの)に続いて、64ビットのアルファチャンネルデータ(2つの8ビットアルファ値と4x4の3ビットルックアップテーブル)からなる。 α 0 > α 1 {\displaystyle \alpha _{0}>\alpha _{1}} であれば、6つの補間用アルファ値を以下の様に計算する。 α 2 = 6 α 0 + 1 α 1 7 {\displaystyle \alpha _{2}={{6\alpha _{0}+1\alpha _{1}} \over 7}} , α 3 = 5 α 0 + 2 α 1 7 {\displaystyle \alpha _{3}={{5\alpha _{0}+2\alpha _{1}} \over 7}} , α 4 = 4 α 0 + 3 α 1 7 {\displaystyle \alpha _{4}={{4\alpha _{0}+3\alpha _{1}} \over 7}} , α 5 = 3 α 0 + 4 α 1 7 {\displaystyle \alpha _{5}={{3\alpha _{0}+4\alpha _{1}} \over 7}} , α 6 = 2 α 0 + 5 α 1 7 {\displaystyle \alpha _{6}={{2\alpha _{0}+5\alpha _{1}} \over 7}} , α 7 = 1 α 0 + 6 α 1 7 {\displaystyle \alpha _{7}={{1\alpha _{0}+6\alpha _{1}} \over 7}} . 逆に α 0 ≤ α 1 {\displaystyle \alpha _{0}\leq \alpha _{1}} であれば、4つの補間用アルファデータを α 2 = 4 α 0 + 1 α 1 5 {\displaystyle \alpha _{2}={{4\alpha _{0}+1\alpha _{1}} \over 5}} , α 3 = 3 α 0 + 2 α 1 5 {\displaystyle \alpha _{3}={{3\alpha _{0}+2\alpha _{1}} \over 5}} , α 4 = 2 α 0 + 3 α 1 5 {\displaystyle \alpha _{4}={{2\alpha _{0}+3\alpha _{1}} \over 5}} , α 5 = 1 α 0 + 4 α 1 5 {\displaystyle \alpha _{5}={{1\alpha _{0}+4\alpha _{1}} \over 5}} と計算する。残り2つは α 6 = 0 {\displaystyle \alpha _{6}=0} と α 7 = 255 {\displaystyle \alpha _{7}=255} とする。ルックアップテーブルはそれぞれのピクセルのアルファ値に従って決定される。 α 0 {\displaystyle \alpha _{0}} は0に割り当てられ、 α 7 {\displaystyle \alpha _{7}} は7に割り当てられる。DXT4の色データはアルファ値がすでに掛け合わせてあり、DXT5の色データはそうではない。DXT4/5は補間アルファ色値を用いているので、DXT2/3よりアルファ値(透過具合)がだんだん変化していくものについては非常によい結果をもたらす。DXT5は最も柔軟な汎用圧縮アルゴリズムだと考えられる。 FOURCC内容Alpha premultiplied?圧縮率テクスチャタイプDXT1 不透明色 / 1-bit Alpha N/A 8:1 / 6:1 単純なアルファなし DXT2 明示的なアルファ値 Yes 4:1 鋭く変化するアルファ値をもつ DXT3 明示的なアルファ値 No 4:1 鋭く変化するアルファ値をもつ DXT4 補間アルファ値 Yes 4:1 徐々に変化するアルファ値をもつ DXT5 補間アルファ値 No 4:1 徐々に変化するアルファ値をもつ
※この「DXT4とDXT5」の解説は、「DXTC」の解説の一部です。
「DXT4とDXT5」を含む「DXTC」の記事については、「DXTC」の概要を参照ください。
- DXT4とDXT5のページへのリンク