1

[プロジェクト]>[HLSL/ CG]> [コンパイラオプション]フィールドを使用して、プロジェクト設定でFXComposerにマクロ定義を追加しようとしました。2つのHLSLフィールドには、/DMYPROJECTとCg-DMYPROJECTがあります。

Cgシェーダーをコンパイルすると、これは期待どおりに機能しますが、HLSLでは機能しません。fxc.exeのコマンドラインで同じオプションを使用すると機能します。

これが私がテストに使用しているコードの抜粋です。

#ifndef MYPROJECT
#error ABC
#endif

私は何が欠けていますか?

4

1 に答える 1

1

FX Composerは、少なくともHLSLの場合、他のプリプロセッサディレクティブに関係なく#errorディレクティブを実行するように見えます。ピクセルの色を黒などに設定するなど、実際のコードでテストを試してみると、うまくいくことがわかると思います。とにかく、それは私のために働いた。あなたの質問は実際に私がこれを行う方法を理解するのに役立ちましたが、私は最終的にアセット、エフェクト、myeffect、myshader.fx、プロパティ、コンパイラオプションに行きました。

また重要です。[コンパイラオプション]フィールドに、/ DMYPROJECTではなくMYPROJECTのようなマクロを入力しましたが、これは機能しました。FXComposer2.53.0524.1905とD3D9HLSLシェーダーを使用しています。

于 2013-05-06T16:36:33.177 に答える