ファイル保存オプション – DDS

ファイル保存オプション - DDSDDSフォーマットで画像を保存するときに、保存方法(オプション)を設定します。

事前に設定しておくには、メインメニューから[設定]-[ファイル保存オプション][ファイル保存オプション – DDS]ダイアログを開きます。

ダイレクトカラーイメージ

ダイレクトカラーイメージの保存形式を指定します。

[DXT1]~[DXT5]を選択したときは、内部的にDXTC圧縮を施してから保存します。

DXT2,4ではRGBにアルファ値を乗算

DXT2・DXT4で保存するときに、このオプションをONにすると、RGB値にアルファ値を乗算(RGB値×アルファ値÷255)して記録します。

DXT5では、可能ならDXT1にする

圧縮形式にDXT5を選択したとき、アルファチャンネルの表現がDXT1相当(透明・不透明のみ)である画像については、DXT1で圧縮するようにします。

ファイル保存時のオプション設定を省略する

次回保存時からこのダイアログを表示しません。

毎回表示するように戻したい場合は、メインメニューから[設定]-[ファイル保存オプション]を選び、このダイアログを表示させてオプションをOFFにしてください。

DDSのフォーマット

DDSは、以下のフォーマットを持っています。


R階調 G階調 B階調 A階調 ビット数 データ容量
R5G6B5 32 64 32 16 1/2
R8G8B8 256 256 256 24 3/4
A1R5G5B5 32 32 32 1 16 1/2
A4R4G4B4 16 16 16 16 16 1/2
A8R8G8B8 256 256 256 256 32 1/1
DXT1 32 (*1) 64 (*1) 32 (*1) 1 4 (*2) 1/8
DXT2,3 32 (*1) 64 (*1) 32 (*1) 16 8 (*2) 1/4
DXT4,5 32 (*1) 64 (*1) 32 (*1) 256 (*1) 8 (*2) 1/4

※ 「データ容量」は、RGBA32bitフルカラーフォーマットに対する比率です。

※ (*1)は、代表値の値です。

※ (*2)は、ブロックあたりのビット数をピクセル数で割った値です。

DXTC圧縮について

「DXTC圧縮」は、DirectXで使用可能な、圧縮テクスチャ画像のフォーマットです。圧縮方法により、DXT1~DXT5の5種類が定義されています。

DXT1

DXT1は、4×4ピクセルを64bit(8バイト)に圧縮したフォーマットです。

各ピクセルには2つの「代表色」と、代表色から線形補間演算で得る「補間色」、透明を表す「透明色」のいずれかを配置することができます。

ひとつの「4×4ピクセル」のかたまりを「ブロック」と呼びます。ブロックは以下から選ぶことができ、ブロック内には種別に応じたカラー0~カラー3のピクセルを置くことができます。

ブロック名/カラー番号 カラー0 カラー1 カラー2 カラー3
アルファなしブロック 代表色 代表色(カラー0 > カラー1) 補間色 補間色
アルファありブロック 代表色 代表色(カラー0 ≦ カラー1) 補間色 透明

ブロック内のピクセル全部が不透明のときは、補間色を2つとることができます。透明ピクセルが必要なブロックは、補間色は1つしかとることができません。

DXT2, DXT3

DXT2,3は、4×4ピクセルを128bit(16バイト)に圧縮したフォーマットです。

DXT2,3は、DXT1に独立したアルファチャンネルを追加したものです。RGBチャンネル側のブロックは、「アルファなしブロック」のみを用いて構成されます。

アルファチャンネル側のブロックは、各ピクセルごとに16階調のアルファ値を置くことができます。透明・不透明の2値しか設定できないDXT1より、自由な表現ができるようになります。

DXT2とDXT3の違いは、アルファが半透明になっているピクセルのRGBチャンネルの代表値です。DXT2では、RGB値にアルファ値が乗算された値となっています。通常、アルファブレンディング用にはDXT3を使用するケースのほうが多いですが、レンダリングエンジンによってはDXT2を使用するケースもあります。どちらを使用するかは、エンジンがどちらの方法を採用しているかに依存します。

DXT4, DXT5

DXT4,5は、4×4ピクセルを128bit(16バイト)に圧縮したフォーマットです。

DXT4,5は、DXT1に独立したアルファチャンネルを追加したものです。RGBチャンネル側のブロックは、「アルファなしブロック」のみを用いて構成されます。

アルファチャンネル側のブロックは、RGBチャンネル側と同じように「代表値+補間値」からいずれかのアルファ値を置くことができます。透明・不透明の2値しか設定できないDXT1より、自由な表現ができるようになります。またDXT2,3と比べると、より滑らかなグラデーションをもったアルファ値が設定可能になりますが、複雑な変化には対応しきれなかったり、値の設定が難しいという欠点もあります。DXT2,3とDXT4,5のどちらがよりきれいに圧縮できるかは、画像の内容に依存します。

ブロック名/アルファ番号 代表値0 代表値1 補間値 固定値
8アルファブロック アルファ0 アルファ1 アルファ2~7 なし
6アルファブロック アルファ0 アルファ1 アルファ2~5 アルファ6(完全透明)
アルファ7(完全不透明)

DXT4とDXT5の違いは、アルファが半透明になっているピクセルのRGBチャンネルの代表値です。DXT4では、RGB値にアルファ値が乗算された値となっています。通常、アルファブレンディング用にはDXT5を使用するケースのほうが多いですが、レンダリングエンジンによってはDXT4を使用するケースもあります。どちらを使用するかは、エンジンがどちらの方法を採用しているかに依存します。