現在、第2シリーズのチュートリアルのwww.rastertek.comのDirectX 11チュートリアルに従っています。私は現在Windows7 x64でVS2015を使用しています。このチュートリアルに続いて、私はWindows 10キットを使用しています。DirectX11シェーダファイルのコンパイル
私はちょうど頂点&ピクセルシェーダとHLSLを使って色の三角形をレンダリングするためのチュートリアル4を完了しまし成功し最初の3つのチュートリアルを完了したとDirectX 11を使用して色ウィンドウをレンダリングすることができましたしました。私は頂点シェーダとピクセルシェーダの両方が別々のファイルにあるこのチュートリアルに従っています。私のコードの唯一の違いは、使用しているファイル拡張子です。彼のウェブサイトでは* .vsと* .psを使用しています。これは* .vshと* .pshを使用しています。すべてのクラスファイルが正しくコンパイルされますが、私が解決策を構築し始めると、このエラーが発生します。
1>------ Build started: Project: DirectX 11 Engine, Configuration: Debug x64 ------
1>FXC : error X3501: 'main': entrypoint not found
1>
1> compilation failed; no code produced
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
このウェブサイトの作成者には、連絡先情報やコミュニティベースのフォーラムはありません。これがウェブサイトのチュートリアル内のエラーであるかどうかはわかりません。今度は、このコードがWindows VistaとWindows 7の両方で2010年、2012年、2013年などの旧バージョンのVSを使用する前に、Windows 7の& Windows 8キットをDirectX 10の& DirectX 11チュートリアルのWindows 8キットから使用しています。 www.msdn.comからのヘルプを見つけることができませんでした。そのチュートリアルの一部は、VS2013を使用するDirectX 11用のWindows 8の要件で書かれています。彼らの文書もかなり貧弱です。
次のように私はシェーダファイルをコンパイルするときには廃止2010年6月のダイレクトX SDKリリース対WindowsのキットからのDirectX 11内の異なる気づいたことの一つは次のとおりです。
2010年6月のダイレクトX SDK - 用途:
HRESULT result;
result = D3DX11CompileFromFile("shaderFilename", NULL, NULL, "ShaderName", "*s_5_0" or "*s_5_1", D3D10_SHADER_ENABLE_STRICTNESS, 0, NULL, &pShaderBuffer, &pErrorMessage, NULL);
対...
をこのチュートリアル(VS2015からWindowsの10キット) - 用途:
HRESULT result;
result = D3DCompileFromFile("shaderFilename", NULL, NULL, "ShaderName", "*s_5_0" or "*s_5_1", D3D10_SHADER_ENABLE_STRICTNESS, 0, &pShaderBuffer, &pErrorMessage);
ここで、シェーダのファイル名、シェーダ名、機能レベル、およびシェーダバッファは、頂点シェーダタイプまたはピクセルシェーダタイプのいずれかです。両方の機能レベルを指定していても、両方の場合に使用されている機能レベルは「5_0」で、「5_1」ではありません。
DirectXのHLSL用に異なるコンパイラ間で何が変更されたのか分かりませんが、このエラーがどこから発生しているのかわかりません。ウェブサイトのチュートリアルのShader Sourceコードに何かが見つからないか、VS2015に何らかの種類のプロパティや設定があって、私が気付いていないように設定されていないかどうかはわかりません。私は、この問題の解決に役立つあらゆる提案をしています。
いいえ、ワイルドチャードは、それぞれ「v」または「p」のいずれかを表す質問のプレースホルダーに過ぎませんでした。私は、この手順をシェーダごとに1回、2回呼びます。 –