DirectX SDK与Windows SDK:使用哪一个?

 a126128 发布于 2023-02-13 09:35

我有一个基于DirectX 10的旧游戏引擎(有点),我一直计划将其转移到DX 11.我还安装了Windows 8和VS 2013,并且在尝试运行这个旧项目时我学到了是的DirectX SDK已被弃用,现在的Windows 8 SDK所取代.在这种情况下,我想知道更新到DX 11是否有意义,或者我应该尝试让我的引擎使用新的Windows 8 SDK.在做出决定之前,我想知道几件事:

1)Windows 8 SDK现在要学习还是DX 11仍然相关?比如,如果你想学习C++,你应该学习C++ 11,所以如果你现在想学习Direct3D,你应该学习Windows 8 SDK吗?

2)学习DirectX SDK有很多很好的资源:很多教程,微软自己的样本,NVidia Graphics SDK样本,AMD Radeon SDK样本等.目前有没有类似的优质资料可用于Windows 8的Direct3D或者只是msdn ?

3)基于Windows 8 SDK的引擎是否只能在Windows 8上运行?

4)两者之间的任何第一手经验/比较?

非常感谢!

1 个回答
  • 1)Windows 8 SDK现在要学习还是DX 11仍然相关?

    究竟发生了什么:他们从独立的DirectX SDK中弃用了一些东西,将其剥离并合并到Windows SDK中.还重命名了一些标题.这一切.没什么好学的.

    实际上你必须忘记(即忘记)某些事情.特别是D3DX,效果框架等.当它们从新的SDK中被剥离时,你需要找到替代它们的替代库(例如,Effect11源可用;对于位图加载使用DirectXTK或FreeImage;对于网格使用Assimp; find或推出自己的精灵和字体引擎等).

    好的,需要说的是,他们已经添加了DirectX 11.1(Win8)和11.2(Win8.1).但是,他们的功能太小而且非常具体,说你必须学习它.

    2)学习DirectX SDK有很多很好的资源[...]目前有没有类似的优质资料可用于Windows 8的Direct3D或仅仅是msdn?

    MSDN上有一组新的样本,例如Windows Store Apps样本.它们都与其他(非DirectX)Windows SDK示例混淆,因此请使用搜索.由于API本身保持不变,桌面应用程序并没有什么新东西.通过替换已弃用的东西,您可以轻松地修改旧样本,而无需使用独立的DirectX SDK.

    3)基于Windows 8 SDK的引擎是否只能在Windows 8上运行?

    不,使用此SDK,您可以定位到从Windows XP开始的任何内容.但是,移植到DirectX 11 API,这意味着您的应用程序至少需要Vista SP2.您可以保留没有SP目标的Vista的DirectX 10代码.要在Win XP下运行,您将需要DirectX 9代码路径.或者在所有情况下都是OpenGL;)

    4)两者之间的任何第一手经验/比较?

    好吧,微软的弃用风格和移动的东西没有任何收获有时令人沮丧.但我们已经习惯了.

    从DirectX 10移植到DirectX 11 API 非常简单.但移植扩展的东西,如D3DX是一种痛苦:看我的答案在这里的一些有用的链接.

    我个人认为,你不能依赖微软的二级库,因为它们可能会在最糟糕的时刻被弃用和削减.但你的解决方案他们不会.因此,如果你有基于FreeImage或你自己的lib的纹理加载器,你有一个指向位图数据的指针,可以在任何地方使用它:DirectX,OpenGL,直接将它blit到窗口,无论你想要什么.如果你有自己的着色器效果引擎,那么在Windows应用商店应用中使用自己的效果框架就不会遇到麻烦.

    我倾向于只在任何地方使用Microsoft的核心API以及用于其他任何事情的通用,可移植的第三方库:这减少了对一个人的决策的耦合和依赖,并提供了更多的自由.因此,如果一个lib被破坏,我不需要重写所有这些.

    2023-02-13 09:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有