簡體   English   中英

編譯着色器時出錯-DirectX11

[英]Errors compiling shader - DirectX11

從昨天開始,我一直在嘗試一些編譯器錯誤,以嘗試編譯DirectX11項目。 在我創建並定義了要渲染的對象之前,一切工作正常。 為此,我添加了一個着色器(類型效果)。

編譯器告訴我““ fxc.exe”以代碼1退出”。 為了解決這個問題,我遵循以下答案: DirectX編譯錯誤:錯誤MSB6006:“ fxc.exe”退出,代碼為1

因此,我將HLSL編譯器的着色器模型定義為:

Shader Model 5.0 (/5_0)

但是之后,我仍然出現一些錯誤:

1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(68): error C3646: 'MinPrecision': unknown override specifier
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(68): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(235): error C3646: 'InterpolationMode': unknown override specifier
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(235): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1271): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1271): error C2143: syntax error: missing ',' before '*'
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1275): error C2061: syntax error: identifier 'DXGI_RGBA'

對於最后三個錯誤,我之前有此錯誤,但在此MSDN頁面的步驟5-a之后進行了修復: https : //msdn.microsoft.com/zh-cn/library/windows/desktop/ee663275(v=vs。 85).aspx但是現在這些錯誤又回來了,我不明白為什么。 我確實再次檢查了項目屬性,但錯誤仍然存​​在。

我認為這些是一些編譯器錯誤,我嘗試按照上述鏈接的第6步進行修復,但無法正常工作。

我正在使用Visual Studio 2015。

有人可以幫我嗎? 我確實一直在尋找答案並嘗試對其進行修復,但目前似乎沒有任何效果。 謝謝。

您很可能會錯誤地混合使用傳統DirectX SDK和Windows 8.1 SDK。 D3D_MIN_PRECISION缺少這是在Windows的8.1 SDK版本中定義的定義d3dcommon.h不是在傳統的DirectX SDK版本。

確保您的include / libs路徑的Windows 8.1 SDK首先列出。

在包含<d3d11.h>之前,請確保已明確包含<d3dx11.h> ,以確保選擇正確的版本。

您可能還希望首先明確包含<d3dcommon.h>

理想情況下,您只需要在項目中完全不使用舊版DirectX SDK。 請參閱不使用D3DXZombie DirectX SDK

當然,所有這些都適用於您的C ++代碼。 d3d11shader.hdxgi1_2.h不能包含在HLSL着色器代碼中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM