DDSフォーマットで画像を保存するときに、保存方法(オプション)を設定します。
事前に設定しておくには、メインメニューから[設定]-[ファイル保存オプション]で[ファイル保存オプション – 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を使用するケースもあります。どちらを使用するかは、エンジンがどちらの方法を採用しているかに依存します。