1

プログラムの状態に基づいてランタイムをシェーダーソースに渡す#definesを使用して、巨大なシェーダーを最適化して複雑さを軽減しています。最適化されたシェーダーをファイルに書き込みたいので、次にプログラムを実行するときに#definesを再度渡す必要はありませんが、プログラムの起動時に最適化されたシェーダーを直接コンパイルできます。これで、シェーダーの種類がわかりました。プログラムのニーズによって。

シェーダープリプロセッサーから結果を取得する方法はありますか?もちろん、#define値をファイルに保存し、それに基づいてプログラムの起動時にシェーダーをコンパイルすることはできますが、それはそれほどエレガントではありません。

4

1 に答える 1

0

Cプリプロセッサを使用してシェーダソースを前処理します。

たとえば、GCCにはソースのみを前処理するオプションがあり、中間結果を別のファイルに保存します。プリプロセッサシンボルを定義するオプションを使用すると、目的の結果が得られます。

于 2010-03-27T15:05:01.147 に答える