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则会按照当前着色器代码的相对路径搜索对应的头文件并包含进来

你可能感兴趣的:(游戏开发,DirectX)