我正在尝试学习DirectX 11,并且正在使用Visual Studio 2013 for Windows 7编写一个小应用程序.我正在阅读"使用DirectX 11进行3D游戏编程简介"一书,到目前为止,一切都很顺利.我刚刚介绍了本书的部分内容,其中显示了BoxApp示例,我正在尝试在我的应用程序中实现类似的代码,以便更好地了解最新情况.
我遇到了示例代码中使用的以下不推荐使用的库函数的问题:
D3DX11CompileFromFile(....);
D3DX11CreateEffectFromMemory(...);
Run Code Online (Sandbox Code Playgroud)
首先,只是为了看看我是否理解为什么这些不再可用,我对这些函数不再存在的理解是,对于Windows 8,不推荐使用D3DX头文件和库.最初它们是DirectX SDK中提供的辅助库. Dx9,然后由Os提供Dx10,然后弃用Dx11.1(2)?
现在我的主要问题是如何在没有弃用的D3DX标题的情况下编译着色器和效果?我对这个问题的正确方法感到有些困惑.
对我来说似乎有两种选择:
就像我说的那样,我不太确定哪种选择最好(或者即使有更好的替代选择).我的理解是Effects11更多地用于支持需要移植到Dx11的旧版Dx10.由于我没有任何Dx10代码移植,我对这种支持并不太感兴趣,我对Windows 8中的Metro应用程序支持并不太感兴趣(我认为这对他们来说是正确的术语?)或者如果D3DCompiler路径将意味着支持地铁应用程序,然后我想这是可取的.
无论如何,任何建议或见解将不胜感激.提前致谢.