编译没有效果的DirectX 11着色器或d3dcompiler.h

时间:2015-02-02 15:48:53

标签: c++ visual-studio-2010 directx-11

我正在尝试使用大学计算机上的Visual Studio 2010在Windows 7计算机上编译DirectX 11着色器。我可以在没有效果的家用Windows 8计算机上使用d3dcompiler.h的内容很好地编译它们,但是逆向计算机似乎缺少Effects和d3dcompiler.h。我没有管理员权限,因此我无法安装SDK或类似功能。有没有其他方法来编译HLSL着色器?或者我是否必须在我自己的计算机上以某种方式编译VS310的d3dcompiler lib文件并将其复制?我问,因为我真的希望能够在大学里开展我的游戏项目,但事实证明这比我预想的要困难得多。谢谢你的帮助! :d

1 个答案:

答案 0 :(得分:0)

VS 2012和VS 2013包含Windows 8.x SDK,因此他们已经拥有HLSL编译器FXC.EXE工具和D3DCompile API。 VS 2010是在集成之前,因此您必须使用旧版DirectX SDK *

如果您一般不使用Effects 11系统或D3DReflect,则可以在家中预编译着色器。您可以让FXC生成带有数据块的C头或二进制着色器文件。这是用于DirectX Tool Kit的技术,其中包含预先构建为C头的所有着色器,并且大多数游戏都预先构建为二进制文件。

使用Effects 11,您也可以预编译着色器,但它需要在运行时使用D3DCompile API来进行着色器反射。

如果您的大学系统安装了旧版DirectX SDK,那么您的项目可能只是缺少VC ++目录设置来访问那些包含/ lib路径。

脚注* =实际上,您也可以将Windows 8.x SDK与VS 2010一起使用,但您的大学计算机系统不太可能安装它。