2009-07-26 16 views
1

私は、directx9を使って小さなグラフィックスプログラムを書き、blenderを使って.xファイルから作成したいくつかのモデルファイルを読み込みます。ここまでは順調ですね。シェイダー情報を.xファイルに埋め込む方法

モデルにはテクスチャを持つ素材があり、テクスチャ名を取得してオブジェクトを適切にレンダリングするのは簡単ですが、いくつかの素材で異なるエフェクト(シェーダ)ファイルを使用したいのですが、何も見つかりません.xファイル内のモデルで使用するシェーダに関する情報を埋め込むことができます。

私が持っていた最良のアイデアは、私のd3d9アプリケーションでテクスチャファイル名を見て、テクスチャ名のルックアップテーブルをエフェクトファイルにハードコードすることでした。しかし、これはエレガントではないと思います。また、テクスチャのコピーと名前の変更を終わらせ、異なるシェーダで同じテクスチャを使用することもできます。

私はこれを行う簡単な方法、何か提案が欠けているに違いないと感じていますか?

答えて

1

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

+0

これはかなり意味があります。ありがとうございます。 – jcoder

関連する問題