1

比較的一般的な質問をします。

VC++ 2010 を使用して、シェーダー コンポーネントを使用して Direct X9 アプリケーションをプログラミングしています。プログラムは正常にコンパイルされ、明るいテクスチャ付きの正方形が描画されます。問題は、プログラムの c++ 側は正常に動作し、照明の色やテクスチャの位置の変更などの変更は正常に機能しますが、.fx ファイルへのすべての変更が無視されることです。実際、指定されたディレクトリからファイルを削除しても、実際にはプログラムには影響しません。

これはコンパイラの問題ですか?確かにHLSLファイルは役に立たないわけではありません.変数を渡しているので、どこに行くのでしょうか?

main.cpp: mediafire.com/?9n4llrclcfohqfb

transform.fx: mediafire.com/?jqach463p2vcqhz

4

2 に答える 2

0

シェーダーはオンザフライで再コンパイルされないため、プログラムの実行中にシェーダー コードを変更した場合は、D3DXCreateEffectFromFile を再度呼び出して、シェーダーの新しいコンパイル済みインスタンスを作成する必要があります。

于 2012-09-25T23:52:22.137 に答える
0

うわー、これは実際には非常に恥ずべきことです。D3DXCreateEffectFromFile 関数で .fx ファイルのディレクトリを編集するのを忘れていたため、編集していたファイルはもちろんアプリケーションに影響を与えませんでした。ご協力ありがとうございました。

于 2012-10-07T05:14:16.733 に答える