【发布时间】:2014-08-03 13:46:40
【问题描述】:
我正在尝试学习 DirectX 11,并且正在使用适用于 Windows 7 的 Visual Studio 2013 编写一个小型应用程序。我正在关注“使用 DirectX 11 进行 3D 游戏编程简介”一书,到目前为止一切正常。我刚刚阅读了本书中展示 BoxApp 示例的部分,我只是在编写代码,试图在我的应用中实现类似的东西,以便更好地了解正在发生的事情。
我遇到了示例代码中使用的以下已弃用库函数的问题:
D3DX11CompileFromFile(....);
D3DX11CreateEffectFromMemory(...);
首先只是想看看我是否理解为什么这些不再可用,我对为什么这些函数不再存在的理解是 Windows 8 已弃用 D3DX 头文件和库。最初它们是提供的帮助程序库Dx9 的 DirectX SDK,然后由操作系统为 Dx10 提供,然后在 Dx11.1(2) 中被弃用?
现在我的主要问题是如何在没有弃用 D3DX 标头的情况下编译着色器和效果?我只是对解决这个问题的正确方法有点困惑。
在我看来有两种选择:
- 下载帮助程序库 Effects11,它将提供与以前类似的功能。
- 使用 D3DCompiler 库并手动编译效果。
就像我说的那样,我不太确定哪个是最好的选择(或者即使有更好的替代选择)。我的理解是 Effects11 的引入更多是为了支持需要移植到 Dx11 的旧 Dx10。由于我没有任何要移植的 Dx10 代码,因此我对这种支持并不太在意,我对 Windows 8 中的 Metro 应用程序支持也不太在意(我认为这对他们来说是正确的术语?)但是如果 D3DCompiler path 也意味着对 Metro 应用程序的支持,那么我想这是可取的。
无论如何,我们将不胜感激任何建议或见解。提前致谢。
【问题讨论】:
标签: c++ visual-studio-2013 directx-11 direct3d11 d3dx