しようと計画。
まず、DirectX SDK最新を取得し、インストール
それから参考にしたいVC++のプログラムがあったので、コンパイルしてみると
fatal error C1083: include ファイルを開けません。'dmusicc.h': No such file or directory
というメッセージがでた。
理由は、
dmusicc.hとdmusici.hはDirectMusic関連のヘッダファイルですが、DirectX SDK August 2007を最後に廃止されました。
ということらしい。
参考にしたい部分は、Xファイルをどのように使用しているかなので
サウンド部分は、必要ないので、とりあえずサウンド関連クラスはかたっぱしから削除し続けて実行できるようにしてみた。
実行できるようになったので、ソースとXファイルをしばし見てみる。
Xファイルを眺めていると、
TextureFilename {
"xxxx.dds";
}
という部分があった。
このファイル形式は、
DxTex.exe
を使えば、見ることができることがわかったが、
とりあえずファイル形式をpngに変換したいと考え
DirectX SDKのフォルダを見てみると、それらしきものがあった。
その名は、Texconv.exe
検索してみると、MSDNのページがヒットした。
http://msdn.microsoft.com/ja-jp/library/bb206243%28VS.85%29.aspxの内容は、以下
テクスチャー変換ツール (Texconv.exe)
次のフォーマット間でテクスチャーを変換 するコマンド ライン ツールです。BMP、DDS、JPEG、HDR、PFM、または PNG。
互 換性チャート
Direct3D 9 | Direct3D 10 | 64 ビット ネイティブ モード | Windows?XP | Windows?Vista |
---|---|---|---|---|
あ り | 不要 | あり | あり | あ り |
Path
実行ファイル Texconv.exe は、以下のようにプラットフォームによって異なる場所にあります。
32 ビットDirectX SDK ルート\Utilities\Bin\x8664 ビットDirectX SDK ルート\Utilities\Bin\x64構文
Texconv.exe では、次のコマンド構文を使用します。
texconv [-w number] [-h number] [-d number] [-m number] [-f format] [-if filter] [-mf filter] [-c color] [-srgbi] [-srgbo] [-px string] [-sx string] [-o directory] [-ft file-type] [-nologo] file-name
file-name パラメーターは、変換対象のファイルを指定します。
オプションのコマンドライン スイッチを、次の表に示します。
オ プション スイッチ | 説明 |
---|---|
-c color | カ ラーキー値。このカラーは、ソース テクスチャー内にあると、出力テクスチャー内では透明な黒の値 (0x000000) に置き換えられます。出力テクスチャー内にアルファ チャンネルがあると、指定したカラーがこれにより、透明になります。アルファ チャンネルが存在しない場合は、黒に変更されます。このカラーを指定する場合は常に、アルファ値 (カラーが不透明の場合は FF を使用) を含めるようにします。たとえば、-c FFFE02A5 と指定すると、カラーキー値はソリッドのマゼンタになります。 |
-d number | 出 力テクスチャーの深度。この設定は、ボリューム テクスチャーにのみ適用されます。 |
-f format | 出 力形式。D3DFORMAT の任意のフォーマットをプレフィックス D3DFMT_ なしで指定します (例外:D3DFMT_MULTI2_ARGB8)。 |
-ft file-type | 出 力テクスチャーのファイル タイプ。次のいずれか 1 つを指定します。bmp, dds, jpg, hdr, pfm, png, or tga。デフォルト値は dds です。 |
-h number | 出 力テクスチャーの高さ (ピクセル単位)。 |
-w number | 出 力テクスチャーの幅 (ピクセル単位)。 |
-if filter | イ メージ フィルター。次のいずれか 1 つを指定します。NONE、POINT、LINEAR、TRIANGLE、BOX、NONE_DITHER、POINT_DITHER、LINEAR_DITHER、TRIANGLE_DITHER、 または BOX_DITHER。名前に DITHER が含まれるフィルターは、4×4 の順序つきディザー アルゴリズムも適用されることを示しています。これらのフィルターについては「D3DX_FILTER」 を参照してください。 |
-m number | 出力テクスチャーに 生成されるミップマップ レベルの数。この設定は DDS 出力にのみ適用されます。詳細については、「ミッ プマップによるテクスチャー フィルタリング (Direct3D 9)」を参照してください。 |
-mf filter | D3DX_FILTER で規定されているミップマップ フィルター値。 |
-o directory | 出 力ディレクトリ。 |
-px string | 得られるテクスチャー の名前の前に付加されるテキスト文字列。 |
-srgbi または -srgbo | -sRGBi は、入力データが sRGB (ガンマ 2.2) カラー フォーマットであることを示す場合に使用します。-sRGBo は、出力データが sRGB カラー フォーマットであることを示す場合に使用します。 |
-sx string | 得 られるテクスチャーの名前の後に付加されるテキスト文字列。 |
-nologo | 著 作権に関するメッセージを除外します。 |
どうやら使えそうだ。
>"C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Utilities\bin\x64\Texconv.exe" xxx.dds -ft png
で実行してみたところ、pngファイルに変換できた。
0 件のコメント:
コメントを投稿