可以通过 windows 8 sdk 或 directx sdk 使用 direct3d11 吗?作为一个学习者,不清楚这种选择有什么影响。使用 windows sdk 还是 directx sdk 学习 directx 11 有什么区别?
2 回答
directx sdk(上次是 2010 年 6 月,三年前)已弃用。Windows 8 工具包包含最新版本的直接 x 标头和库。
基本 API 和文档基本相同,但缺少最近的更改。D3DX 已弃用,数学移至 directxmath.h,着色器编译移至 d3dcompiler.h
Pix 不再适用于最近的 Windows,因此您必须坚持使用 Visual 2012 附带的 VSGD,但 PiX 替代品在目前的状态下远非真正有用:( 因此,对于 nvidia 来说更好的工具是 nsight,对于 AMD 来说是 gpuperfstudio .
就是这样。
对于 Direct3D 11,最好的方法是将 VS 2012 或 VS 2013 与集成的 Windows 8.x SDK 一起使用,并完全避免使用旧版 DirectX SDK(2010 年 6 月)的复杂性,直到您确定确实需要它(一个引人注目的案例是 Windows Vista 或 Windows 7 上的 XAudio2.7,而不是 Windows 8 或更高版本上的 XAudio 2.8)。
对于 Windows 8.x 上的 Windows Store 应用程序,MSDN 和 MSDN 代码库中有大量官方教程和示例供您了解 Direct3D 11。
对于 Windows 7 或 Windows 8.x 上的 Win32 桌面应用程序,我发布了许多从旧版 DirectX SDK 中收集的非官方示例,这些示例与 Windows 8.x SDK 构建得很好。有关MSDN 代码库的清单和链接,请参阅此博客文章。
许多较早的教程和书籍确实假设您使用的是现已弃用的 D3DX 库,但对于 Direct3D 11,有很多选项可以避免使用它,如此处所述。最近的一些书籍也包含这些较新的图书馆。
顺便说一句,我从您的问题中假设您正在询问有关使用 C++ 编程 Direct3D 11 的问题,因为这就是 DirectX SDK 和 Windows 8.x SDK 支持的内容。如果您正在寻找 C#,那么我建议您查看SharpDX或SlimDX。