質問

私は.Xファイルからブレンダーを使用して作成されたいくつかのモデルファイルをインポートDirectX9のを使用して、小さなグラフィックスプログラムを足しますよ。これまでのところは良い。

モデルはテクスチャを有する材料を持っていると私は材料の一部に異なる効果(シェーダ)ファイルを使用したいのですが、私はにどのような方法を見つけることができませんしかし、それは、テクスチャ名を取得し、適切にオブジェクトをレンダリングするために簡単ですシェーダは.Xファイルにモデルに使用するかについての情報を埋め込みます。

私が持っていた最高のアイデアは、私のD3D9アプリケーションでテクスチャのファイル名を見て、エフェクトファイルにテクスチャ名のルックアップテーブルをハードコーディングすることでした。しかし、それは、エレガントに見える、とも私はちょうどので、私は別のシェーダと同じテクスチャを使用することができ、テクスチャをコピーして名前を変更終わるだろうということを意味しません。

私はこれを行うための簡単な方法が不足してしなければならないと感じ、任意の提案ですか?

役に立ちましたか?

解決

テクスチャ画像ファイルとは異なり、シェーダプログラムを指定すると、非常に複雑にすることができます。あなたはシェーダテキストだけでなく、それが必要なパラメータの仕様とパラメータとどのように設定する値がわからするファイルを読み込み、誰のための方法が必要です。いくつかのシェーダはターンテクスチャのパラメータを必要とし、時にはこれらtexutresは(Perlinノイズ3Dテクスチャの場合には例えば)アプリケーションによって生成される必要がある。
要するに、一般的に完全な.xなどのファイル形式でintegretedすることができシェーダを指定するには、標準的な方法を考え出すする方法はありません。あなたの唯一の選択肢は、あなたのアプリケーションのためのアドホックな何かを思い付くことです。あなたが質問で提案する方法は、任意のと同じくらい良いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top