Home > スポンサー広告 > アルファチャンネルのないDDSをDXT1にしてVRAM節約

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comments:-

VanillaBeans URL 2009-03-07 (土) 16:46

初めましてこんにちは。
とても参考になります。
これで私のMODでテクスチャがぶっこわれてると言われなくて済みそうです。

Airscape URL 2009-03-08 (日) 12:21

VanillaBeansさん初めまして!
いつもVanillaBeansさんのMODを使わせていただいています。
この記事が少しでもお役にたてば嬉しいです(^^)

URL 2009-12-29 (火) 17:29

ご存じかもしれませんが、こちらの記事をご覧になったどなたかが、フォルダ以下を一括で調査&変換してくれる便利なプログラムを作ってくれたようです。

shyにアップされてます。
ttp://shy.jsphr.net/upload/img/ups05855.7z

Airscape URL 2009-12-30 (水) 00:21

おお~!これはすごい便利ですね。教えてくださってありがとうございます!記事の方にもさっそく追記させていただこうと思います。
ただshyなので流れたらもうDLできなくなってしまうのかな?必須ツールというほど便利なので、そうなってしまうとかなりもったいない感じですね…。

kaldos URL 2010-03-18 (木) 01:28

すみません、既に知っているかもしれませんが
ToDxt1のバージョンが1.0.1に更新されていたので報告させていただきます。

http://www.4shared.com/file/243163765/3a675096/ToDxt1_v101.html

Airscape URL 2010-03-18 (木) 20:19

kaldosさん情報ありがとうございます!
記事のリンクの方をそちらに変更させていただきました。

Comment Form

Trackback+Pingback:-

TrackBack URL for this entry
http://oblivionclarity.blog21.fc2.com/tb.php/19-d6b55fa5
Listed below are links to weblogs that reference
スポンサーサイト from Oblivion Clarity

Home > スポンサー広告 > アルファチャンネルのないDDSをDXT1にしてVRAM節約

Home > ツール > アルファチャンネルのないDDSをDXT1にしてVRAM節約

アルファチャンネルのないDDSをDXT1にしてVRAM節約

Oblivionのアイテムや地形は、モデルの形のデータ「Mesh」ファイルと、
Meshに貼り付けるグラフィックデータ「Texture」ファイルの二つで出来ています。
Meshと比べるとTextureは容量が大きく、使用されるTextureサイズがVRAM使用量と直結します。

しかしMODの中には圧縮方法が最適化されておらずTextureサイズが大きくなってしまっているものもあります。
そんな場合はTextureの圧縮方法を最適なタイプに変更してサイズを減らしましょう。

DDS形式の予備知識


まず予備知識として、OblivionのTextureファイルはDDSという形式が使われています。
DDS形式はDXTという画像圧縮が使われていて、Oblivionでよく使用されているのはDXT1、DXT3、DXT5です。

DXT1と3・5の違いは、透過処理(アルファチャンネル)が使われているかどうかです。

DXT3と5のファイルサイズは同じですが、DXT1はDXT3・5と比べて約半分のサイズになります。
これはDXT3・5のファイルの半分がアルファチャンネルの情報に使われているからです。

実際にゲーム中のSSで説明します。使用MODは「Fairy Wing」です。

DDS_alphachannel.jpg
左が透過処理が使われているケープ。右がDXT1に変更して透過情報が失われたケープです。

DXT形式による違いがわかりますでしょうか?
透過処理が使われているDDSファイルにはDXT3・5、使われていないDDSファイルにはDXT1が最適なタイプになります。

またテクスチャファイルは、でこぼこを表現するノーマルマップ(*_n.dds)のDDSファイルが対になっており、ノーマルマップのアルファチャンネルはツヤの表現に使用されています。

しかし透過処理・ツヤ処理を行っていないDDSファイルにもDXT3・5を使用しているMODが結構多いのです。
ユーザーMODは高解像度の綺麗なTextureが使われていることが多く、その分ファイルサイズが大きくなりVRAMを圧迫します。

そういった透過・ツヤ処理が使われていないのにDXT3・5が使用されているddsファイルをDXT1にしてサイズを半分に減らそう!
というのが今回の本題です。

Microsoft DirectX SDKをダウンロード


DDSのDXTタイプを変更するためにまず「Microsoft DirectX SDK」をダウンロードする必要があります。

Microsoft DirectX SDK (Mar 2008)

SDKをダウンロードしたら好きなフォルダにインストールしてください。
そしてインストールしたフォルダから
DirectX SDK\Utilities\Bin\x86\DxTex.exe
を開いてください。このDxTexというのが今回使用するツール「DirextX Texture Tool」です。

DirextX Texture ToolでDXT圧縮タイプを変更


[追記:この手順は後述のToDxt1ツールを使う場合には必要ありません]

それではDXTタイプを変更してみましょう。
サンプルMODは引き続き「Fairy Wing」を使用します。
Fairy Wingのddsファイルは
Oblivion\Data\Textures\luna
にあります。

「f.dds」という胴体部分のMeshに使われているddsファイルをDxTexで開きます。
開き方はDxTexを起動してf.ddsをコピー&ペーストするのがお手軽です。

DDS_DxTex1.jpg
f.ddsを開いた画面です。画面上部のファイル情報からf.ddsにはDXT3が使われていることがわかります。
DDSがどの形式かはDxTexで開かなくても、ウィンドウ画面のDDSファイルをクリックすればステータスバーにDXTの形式が表示されます。

では次にf.ddsに透過処理(アルファチャンネル)が使われているかを調べましょう。
「View」→「Alpha Channel Only」を選択してください。f.ddsのアルファチャンネル画面に切り替わります。
DDS_DxTex2.jpg


すると画面が真っ白になりました。これはf.ddsにはアルファチャンネルが使われていないことを意味します。
DDS_DxTex3.jpg
解像度が大きくてアルファチャンネル画像が一部分しか見えていない場合は視点バーを動かしてすべて真っ白であることを確認してください。

こちらはアルファチャンネルが使われているddsの例。
透過の比較SSで見せたケープ部分のTexutre「cape.dds」のアルファチャンネル画面です。
DDS_DxTex4.jpg
グレースケールの透過情報が書き込まれていますね。こうしたアルファチャンネルが真っ白ではないDDSファイルはDXT1にしてはいけません。


さて、「f.dds」にはアルファチャンネルが使われていないということを確認しました。
ということはDXT1形式にしても大丈夫ということです。

「Format」→「Change Surface Format」を選択してください。
DDS_DxTex5.gif

DXT選択画面になります。「CC 4bit:DXT1」を選択して「OK」をクリックしてください。
DDS_DxTex6.gif

選択後しばらく待つとファイル情報がDXT1になるのでフロッピーのアイコンをクリックしてセーブしてください。
DDS_DxTex7.jpg


以上でDXT1への変更が完了しました。
処理の結果f.ddsのファイルサイズは1,366kbから683kbと約半分になりました。これでVRAM使用量も減った分だけ節約が出来ます。
DDS_filesize.jpg

こんな感じで他のddsファイルもアルファチャンネルの確認→使われていないならDXT1への変更を行っていきます。
一つ一つのDDSファイルの削減量はわずかでも10・20とやっていけば数十MB以上の違いになります。

ただ全部のDDSを変更するのは手間がかかるので600~1200kb以上のddsファイルだけなどにするのが効果と手間のバランスがいいかと思います。

追記:ToDxt1について


アルファチャンネルが使われていないDXT3/5のファイルを一括でスキャンしてDXT1に変更してくれるとても便利なツールを日本の有志の方が作成してくださいました。

http://www.4shared.com/file/243163765/3a675096/ToDxt1_v101.html

詳しい設定方法はReadmeに書いてくださっています。

ToDxt1を作成してくださった有志の方、コメントより情報をくださった方ありがとうございます!

Comments:6

VanillaBeans URL 2009-03-07 (土) 16:46

初めましてこんにちは。
とても参考になります。
これで私のMODでテクスチャがぶっこわれてると言われなくて済みそうです。

Airscape URL 2009-03-08 (日) 12:21

VanillaBeansさん初めまして!
いつもVanillaBeansさんのMODを使わせていただいています。
この記事が少しでもお役にたてば嬉しいです(^^)

URL 2009-12-29 (火) 17:29

ご存じかもしれませんが、こちらの記事をご覧になったどなたかが、フォルダ以下を一括で調査&変換してくれる便利なプログラムを作ってくれたようです。

shyにアップされてます。
ttp://shy.jsphr.net/upload/img/ups05855.7z

Airscape URL 2009-12-30 (水) 00:21

おお~!これはすごい便利ですね。教えてくださってありがとうございます!記事の方にもさっそく追記させていただこうと思います。
ただshyなので流れたらもうDLできなくなってしまうのかな?必須ツールというほど便利なので、そうなってしまうとかなりもったいない感じですね…。

kaldos URL 2010-03-18 (木) 01:28

すみません、既に知っているかもしれませんが
ToDxt1のバージョンが1.0.1に更新されていたので報告させていただきます。

http://www.4shared.com/file/243163765/3a675096/ToDxt1_v101.html

Airscape URL 2010-03-18 (木) 20:19

kaldosさん情報ありがとうございます!
記事のリンクの方をそちらに変更させていただきました。

Comment Form

Trackback+Pingback:0

TrackBack URL for this entry
http://oblivionclarity.blog21.fc2.com/tb.php/19-d6b55fa5
Listed below are links to weblogs that reference
アルファチャンネルのないDDSをDXT1にしてVRAM節約 from Oblivion Clarity

Home > ツール > アルファチャンネルのないDDSをDXT1にしてVRAM節約

Recent Comments
Recent Trackback
Search
Meta
Linkについて

トップ・各ページへのリンクはご自由にどうぞ。

Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。