【问题标题】:Compile DirectX 11 shader without effects or d3dcompiler.h编译 DirectX 11 着色器而不使用效果或 d3dcompiler.h
【发布时间】:2015-02-02 15:48:52
【问题描述】:

我正在尝试在大学计算机上使用 Visual Studio 2010 在 Windows 7 计算机上编译 DirectX 11 着色器。我可以在没有效果的家用 Windows 8 计算机上使用 d3dcompiler.h 的内容很好地编译它们,但大学计算机似乎缺少效果和 d3dcompiler.h。我没有管理权限,所以我不能安装 SDK 或类似的东西。是否有编译 HLSL 着色器的替代方法?还是我必须以某种方式在我自己的计算机上为 VS2010 编译 d3dcompiler lib 文件并将其复制过来?我问这个问题是因为我真的很想在大学里从事我的游戏项目,但事实证明这比我预期的要困难。谢谢你的帮助! :D

【问题讨论】:

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


    【解决方案1】:

    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 一起使用,但您的大学计算机系统不太可能安装它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多