DX11開發報錯error X1505: No include handler specified, can't perform a #include.

初學DX開發,之前在做簡單幾何體,今天添加光照用了網上流傳較多的LightHelper.fx
然而在個人的VS、PS中直接#include "LightHelper.fx" 卻報錯,網上搜了下也沒找到解決方法
後來對比代碼後發現,需要將原先

D3DCompileFromFile(filePath, nullptr, 0, entry, shaderModel,
		shaderFlags, 0, buffer, &errorBlob);

改爲

D3DCompileFromFile(filePath, nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE, entry, shaderModel,
		shaderFlags, 0, buffer, &errorBlob);

D3D_COMPILE_STANDARD_FILE_INCLUDE,該字段用於決定如何處理包含文件,若爲0則當fx中遇到include將報錯,而設爲D3D_COMPILE_STANDARD_FILE_INCLUDE則會按照當前着色器代碼的相對路徑搜索對應的頭文件幷包含進來

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章