次の方法で共有


DirectX テクスチャー エディター (Dxtex.exe)

DirectX テクスチャー エディター (DxTex) を使用すると、DirectX SDK ユーザーは DXTn 圧縮フォーマットを使用するテクスチャー マップを作成できます。

Bb219744.dxtexui(ja-jp,VS.85).png

互換性チャート

Direct3D 9 Direct3D 10 64 ビット ネイティブ モード Windows?XP Windows?Vista

あり

不要

あり

あり

あり

インストール

DirectX SDK をインストールすると、DirectX テクスチャー エディターのソース コードと実行ファイル (Dxtex.exe) が以下の場所に自動的にインストールされます (実行可能ファイルの場所はプラットフォームによって異なります)。

  • ソース コード
    DirectX SDK ルート\Utilities\Source\dxtex
  • 32 ビット実行ファイル
    DirectX SDK ルート\Utilities\Bin\x86
  • 64 ビット実行ファイル
    DirectX SDK ルート\Utilities\Bin\x64

ユーザー ガイド

DirectX テクスチャー エディターを使用すると、さまざまなフォーマットのテクスチャーのオープン、表示、操作、および保存を実行できます。また、さまざまなテクスチャー機能も使用できます。テクスチャー エディターは、従来のドキュメントベースの UI を使用しています。各テクスチャー マップがドキュメントであり、複数のドキュメントを同時に開くことができます。

テクスチャーのオープンと作成

以下の手順では、DirectX テクスチャー エディターを使用してテクスチャーを開く方法と、新しいテクスチャーを作成する方法を示します。

既存のテクスチャーを開くには

  1. DirectX テクスチャー エディターを起動します。
  2. [ファイル](File) メニューの [開く](Open) をクリックします。
  3. [Open] ダイアログ ボックスで、テクスチャーとして開くイメージ ファイルを選択します。[開く](Open) をクリックします。

新しいテクスチャーを作成するには

  1. DirectX テクスチャー エディターを起動します。
  2. [File] メニューの [New Texture] をクリックします。
  3. [New Texture] ダイアログ ボックスで、作成対象テクスチャーのオプションを指定し、[OK] をクリックします。

テクスチャーの変換、表示、保存

以下の手順では、既存のテクスチャーをさまざまなフォーマットに変換し、元のフォーマットと新しいフォーマットを比較した後、得られたテクスチャーを保存します。

  1. DirectX テクスチャー エディターで、既存のテクスチャーを選択し、開きます。
  2. [Format] メニューの [Change Surface Format] をクリックします。
  3. [Change Surface Format] ダイアログ ボックスの [Surface/Volume Format] リストで選択肢をクリックし、新しいフォーマットを設定します。[OK](OK) をクリックします。
  4. 元のフォーマットと新しいフォーマットを比較するには、表示されたテクスチャーをクリックし、元のフォーマットと新しいフォーマットを切り替えます。テクスチャーのウィンドウのタイトル バーを見ると、現在表示されているフォーマットがわかります。
  5. 新しいフォーマットのテクスチャーを保存するには、[File] メニューの [Save As...] メニュー項目を選択し、ポップアップ表示されるダイアログ ボックスで新しいファイル名を選択します。[Save] をクリックして、テクスチャー ファイルを保存します。

    フォーマットの変更時は、元のビットマップがソース イメージとして使用され、以前のフォーマット変更はすべて上書きされます。これは、フォーマット変更を複数回実行した場合に発生する、イメージの劣化の進行を防止するためです。

アルファ チャンネルの使用

多くのテクスチャー フォーマットには、各ピクセルの不透明度情報を提供するアルファ チャンネルが含まれています。DxTex では、テクスチャー内のアルファをフルサポートしています。アルファとしてビットマップをテクスチャーに適用する際は、ビットマップの青のチャンネルがアルファ データの提供に使用されます。

テクスチャーにアルファ データを与える方法は、2 とおりあります。つまり、ファイルの特殊な命名規則を使用し、指定したビットマップをアルファとしてテクスチャーに自動的に付加するよう DxTex に通知することも、ビットマップをアルファとしてテクスチャーに手動で付加することもできます。どちらの方法でも、アルファ データの付加先となるテクスチャーと、アルファ データをテクスチャーに提供するビットマップが必要です。

    一部の DxTex 操作 (アルファ チャンネルとして開く、DXT3 への変換、DXT5 への変換) は、DXT2 および DXT4 フォーマットに対して実行することができません。詳細については、「解説」を参照してください。

自動的にアルファ チャンネルで開く

アルファ付きのテクスチャーを自動的に開くには、次の手順に従います。

  1. Windows エクスプローラーを使用し、アルファで開くビットマップを見つけて指定します。アルファ データを提供する第 2 のビットマップも、同じディレクトリに存在する必要があります。
  2. アルファ データを提供するビットマップを右クリックし、[Rename] をクリックします。
  3. 該当するビットマップを、アルファの提供先とするビットマップの名前に変更し、ファイル名の後にサフィックス "_a" を付加します。たとえば、アルファを "flowers.bmp" に適用する場合、アルファ データのビットマップは "flowers_a.bmp" という名前でなければなりません。
  4. DirectX テクスチャー エディターを開きます。
  5. [File] メニューの [Open...] メニュー項目をクリックし、アルファで開くビットマップを選択します。アルファ データが含まれる第 2 のビットマップは、自動的にアルファ チャンネルにロードされます。

手動でアルファ チャンネルに開く

既存のテクスチャー内のアルファ チャンネルとしてビットマップを開くには、次の手順に従います。

  1. [File] メニューの [Open...] メニュー項目をクリックし、アルファ チャンネルを持つ既存のテクスチャーを開きます。
  2. [File] メニューの [Open Onto Alpha Channel of This Texture...] メニュー項目をクリックします。ポップアップ表示されるダイアログ ボックスで、アルファ データが含まれるビットマップを選択します。

    既存のテクスチャーがボリューム マップまたはキューブ マップの場合は、キューブ マップ テクスチャーまたはボリューム マップ テクスチャー内の適切なサーフェスを選択した後、[File] メニューの [Open Onto Alpha Channel of This Surface] メニュー項目を選択する必要があります。詳細については、後述の「キューブ マップとボリューム マップ」を参照してください。

アルファ チャンネルの表示

アルファ データがテクスチャーに適用されると、アルファ チャンネルがオーバーレイ表示されます。アルファ チャンネル自体をグレースケール イメージとして表示するには、[View] メニューの [Alpha Channel Only] メニュー項目をクリックします。

キューブ マップとボリューム マップ

DxTex では、テクスチャーをキューブ マップ テクスチャーおよびボリューム マップ テクスチャーに変換したり、それらのテクスチャーを見つけて保存したりできます。キューブ マップ テクスチャーは、フェイスごとに 1 テクスチャーでキューブのフェイスのように配置された 6 つのテクスチャーから構成されています。ボリューム マップ テクスチャーは "スライス" のように配置される 1 つ以上のテクスチャーから構成され、各ピクセルに 3 つの次元 (高さと幅はスライス テクスチャー上でのピクセルの位置を表し、深度はピクセルが存在するスライスを表す) が存在すると見なすことができます。

キューブ マップへの作成とインポート

テクスチャーをキューブ マップに変換するには、以下の手順に従います。

  1. [File] メニューの [Open...] メニュー項目をクリックして、既存のテクスチャーを開きます。
  2. [Format] メニューの [Make Into Cube Map...] メニュー項目をクリックします。
  3. 現在のテクスチャーが、キューブ マップの 1 つのフェイスに適用されます。ポップアップ表示されるダイアログ ボックスで、テクスチャーを適用するフェイスを選択し、[OK] をクリックします。

キューブ マップの各フェイスにテクスチャー データをインポートするには、以下の手順に従います。

  1. [View] メニューの [Cube Map Face] メニュー項目をクリックし、表示されるリストからフェイスを 1 つ選択します。
  2. [File] メニューの [Open Onto This Cubemap Face...] メニュー項目をクリックし、ポップアップ表示されたダイアログ ボックスで開くテクスチャーを選択します。
  3. フェイスごとにこの手順を繰り返します。

ボリューム マップへの作成とインポート

テクスチャーをボリューム マップに変換するには、以下の手順に従います。

  1. [File] メニューの [Open...] メニュー項目をクリックして、既存のテクスチャーを開きます。
  2. [Format] メニューの [Make Into Volume Map...] メニュー項目をクリックします。
  3. ポップアップ表示されるダイアログ ボックスで、テクスチャーを適用するスライス (レイヤー) の数を選択し、[OK] をクリックします。

ボリューム マップの各スライスにテクスチャー データをインポートするには、以下の手順に従います。

  1. [View] メニューの [Higher Volume Slice] メニュー項目または [Lower Volume Slice] メニュー項目をクリックして、現在表示中のスライスを変更します。
  2. [File] メニューの [Open Onto This Surface...] メニュー項目をクリックし、ポップアップ表示されたダイアログ ボックスで開くテクスチャーを選択します。
  3. スライスごとにこの手順を繰り返します。

ミップマッピング

ミップマッピングというテクニックは、プレフィルターされたテクスチャー イメージを複数の解像度で提供することにより、イメージの品質を改善し、テクスチャー メモリーの帯域幅を縮小します。フィルタリングは、簡単なボックス フィルターにより実行されます。つまり、4 つの最も近いピクセルの平均が求められ、各出力先ピクセルが生成されます。

テクスチャーのミップマップを生成するには、以下の手順に従います。

  1. [File] メニューの [Open...] メニュー項目をクリックして、既存のテクスチャーを開きます。
  2. [Format] メニューの [Generate Mip Maps] メニュー項目をクリックします。
  3. [View] メニューの [Smaller Mip Level] メニュー項目または [Larger Mip Level] メニュー項目をクリックし、ミップマップ内の各イメージを確認します。

    DxTex でミップマップを生成するには、ソース イメージの幅も高さも 2 の累乗でなければなりません。

コマンドライン モード

コマンド ライン オプションを使用すると、入力ファイル、出力ファイル名、および処理オプションを DxTex に渡すことができます。出力ファイル名を指定すると、当アプリケーションは出力ファイルを書き出した後自動的に終了し、ユーザー インターフェイスは示されません。

dxtex [infilename] [-a alphaname] [-m] [DXT1|DXT2|DXT3|DXT4|DXT5] [outfilename]

infilename:               Name of the file to load.  This can be a
                            .bmp or .dds file.

-a alphaname:             The next parameter is the name of a .bmp 
                            file to load as the alpha channel. If no 
                            alpha filename is specified, DxTex still
                            looks for a file named Infilename_a.bmp. If 
                            it exists, use that file as the alpha 
                            channel.

-m:                       Mipmaps are generated.

DXT1|DXT2|DXT3|DXT4|DXT5: Compression format. If no format is 
                            specified, the image will be in ARGB-8888.

outfilename:              Name of the destination file. If this 
                            option is not specified, the user interface 
                            shows the current file and all requested 
                            operations.  If an outfilename is specified, 
                            the application exits after saving the 
                            processed file without presenting a user 
                            interface.

解説 

DXTn 圧縮テクスチャーの作成は、難しくありません。ただし、IDirect3DTexture9 インターフェイスの使用時は、Direct3D が自動的に変換を実行します。上級開発者が各自のニーズに合った独自のツールを作成するうえで、DirectX テクスチャー エディターは便利な基本機能を提供します。

DxTex は、利用可能な 3D ハードウェアにかかわらず、Direct3D リファレンス ラスタライザーを使用してテクスチャーを描画します。そのため、テクスチャーが比較的大きい (256 x 256 ピクセルより大きい) と、CPU の速度によって異なりますが、アプリケーションの処理速度が多少遅くなる場合もあります。

DDS ファイル フォーマットの詳細については、「DDS」を参照してください。テクスチャー エディターは、少なくとも R、G、および B テクスチャーを含まないサーフェス フォーマットを持つテクスチャー (D3DFMT_G16R16、D3DFMT_A8 など) をサポートしていませんが、D3DX ではそのようなテクスチャーのロードおよび保存を DDS フォーマットで実行できます。

DXT2 および DXT4 フォーマットでは、乗算済みのアルファを使用します。つまり、サーフェスに格納される赤、緑、および青の値は、対応するアルファ値により乗算済みです。Direct3D では、乗算済みのアルファが含まれるサーフェスから乗算済みでないアルファが含まれるサーフェスへのコピーを実行することができません。そのため、一部の DxTex オペレーション (アルファ チャンネルとして開く、DXT3 への変換、DXT5 への変換) は、DXT2 および DXT4 フォーマットに対して実行することができません。これらのフォーマットを使用するテクスチャーのサポートは、DXTn テクスチャーをサポートしない Direct3D デバイス上では困難です。それは、ARGB サーフェスで乗算済みのアルファも使用しないというまれなケース以外、Direct3D で従来の ARGB サーフェスにそれらをコピーすることもできないからです。そのため、可能であれば、DXT2 の代わりに DXT3、DXT4 の代わりに DXT5 を使用する方が簡単な場合もあります。