1

Blender を使用して作成されたモデル ファイルを .x ファイルからインポートする、directx9 を使用する小さなグラフィック プログラムを作成しています。ここまでは順調ですね。

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

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

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

4

1 に答える 1

1

テクスチャ画像ファイルとは異なり、シェーダープログラムの指定は非常に複雑になる可能性があります。シェーダーテキスト、必要なパラメーターの仕様、およびファイルを読み取る人がパラメーターに設定する値と方法を知る方法が必要です。一部のシェーダーは、テクスチャーにパラメーターを必要とし、場合によっては、これらのテクスチャーをアプリケーションで生成する必要があります(たとえば、パーリンノイズの3Dテクスチャーの場合)。
つまり、などのファイル形式で完全に統合できるシェーダーを一般的に指定する標準的な方法を思い付く方法はありません.x。あなたの唯一の選択は、あなたのアプリケーションのためにその場限りのものを考え出すことです。あなたが質問で提案する方法は、どれよりも優れています。

于 2009-07-26T14:58:26.610 に答える