1

私は現在、主に私が取り組んでいる HLSL シェーダーに基づいた小さなグラフィック デモ (DirectX を使用) に取り組んでいます。D3DX10CreateEffectFromFile を使用して、実行時に読み込み (およびシェーダーのコンパイル) を行っています。

ただし、完了したら、次の組み合わせを実行したいと思います。

  • シェーダーをプリコンパイルして、ユーザーがデモをより速く起動できるようにします
  • コンパイルされたシェーダー (または必要に応じてソースのみ) を埋め込む (実行可能ファイルにコンパイルする)

主に、デモを非常に簡単にコピーできる 1 つのファイルにしたいので、これを行います。

私が簡単にできることの 1 つは、ソース テキストを cpp に直接入れることですが、後で更新する必要があり、非常に面倒です。

(Visual Studio、DirectX、HLSL を使用して) このようなことを行うことは可能ですか?

4

1 に答える 1

2

そのリンクで指摘されているように、バイナリ リソースとして exe に追加するだけです。

ただし、個人的には、大きなバイナリ ファイルのようなものを使用します。ファイルの先頭には目次があります。基本的にはシェーダー ID とオフセットです。オフセットは、バイナリ コンパイル データの開始位置に対応します。コンパイルされた各シェーダーの先頭に、それの長さも示す 4 バイトを配置できます。新しいシェーダーを挿入するのは面倒ですが、かなりのデータを移動する必要がありますが、オフライン プロセスであるため、実際には問題にはなりません。

于 2010-05-21T07:32:28.520 に答える