2

DirectX11 について学習しようとしていますが、フォローしている良いチュートリアルを見つけました。ただし、ビルドが成功したにもかかわらず、何らかの理由でプログラムがクラッシュします (ウィンドウは表示されますが、「応答しません」というメッセージ ボックスが表示されます)。作成者がその方法を指定したシェーダーファイルの作成についていくつかのことがありました。そこでエラーが発生していないこと、およびプログラムがクラッシュする理由を確認したかったのです。だから私の質問は:

  1. シェーダー ファイルはどのように作成しますか? チュートリアルでは拡張子 .fx を使用していますが、vs にファイルを追加する場合は .h と .cpp からしか選択できません。.cpp を選択して、ファイル名の末尾に .fx を追加するだけでよいですか?

  2. ファイルはどのディレクトリにあると思われますか? (私のファイルは現在ソースファイルにあります)

4

2 に答える 2

0
  1. はい、うまくいきます。もう1つの方法は、.txtを作成し、拡張子を.fxに変更することです(ファイル拡張子を表示するには、任意のフォルダーを開き、メニューの[整理]ボタンをクリックして、[フォルダーと検索オプション]を選択します。チェックボックスをオフにします。タブビューの下の「既知のファイルタイプの拡張子を非表示にする」)。拡張子を変更した後、メモ帳でドキュメントを開き、そこにコードを書き込むことができます

  2. (Windowsファイルシステム内の)プロジェクトフォルダーに移動し、Dataという名前のマップを作成します。そこに.fxファイルを追加します。次に、ソリューションエクスプローラーに移動し、プロジェクトを右クリックしてプロパティを選択します。[ビルドイベント]->[ビルド前のイベント]に移動します。「コマンドライン」ボックスに「xcopy/y / d」「$(ProjectDir)Data」「$(OutDir)」という行を追加します。これで、プロジェクトをビルドするときに、ファイルが適切な場所にコピーされ、次のことができるようになります。 .fxファイルを使用します。

于 2013-03-16T12:07:42.570 に答える
0

.fx は、エフェクト ファイルに関連付けられています。同じファイルに多くのシェーダーの組み合わせがあることを意味します。レンダー ループのコードを投稿できますか... また、Present メソッドを呼び出していますか?つまり、

m_pSwapChain->Present(0, 0);
于 2013-04-17T12:14:57.527 に答える