11

我知道关于这个问题有几个主题,但我想具体说明我在寻找什么。

所以我学习了 OpenGL 并获得了着色器(可编程管道)、顶点缓冲区、索引缓冲区的基础知识,所有这些都被称为“现代 OpenGL”。

如果 DirectX 存在这样的术语,我很感兴趣。

关于选择哪个 DirectX 版本有多种意见。9 确实可以在几乎所有 Windows PC 上运行,而 11 仅限于较新的 GPU 和 Windows Vista+。

我的 GPU 支持 9,而我的操作系统支持 11。我应该选择软件加速 11 还是硬件加速 9?

DirectX9 是否类似于已弃用的 OpenGL?那么如果我学习 DirectX9 而不是 11,是浪费时间还是有用?换句话说。DirectX9 是否提供现代 OpenGL 提供的功能?

如果是这样,我应该使用哪些资源(教程/书籍/视频)来获得在 DirectX 中使用着色器、缓冲区等的基本技能?例如,在一个教程中,我发现了这一行:d3dDevice->BeginScene(); 它让我想起了已弃用的 OpenGL。我不想学习尖端的 DirectX,但我想在兼容性和现代概念之间进行良好的交易。

在另一个线程中,我发现了这本书: http ://www.amazon.com/dp/1598220160/?tag=stackoverfl08-20

但是如果我把时间浪费在过时的旧东西上,我会有点害怕。

总而言之,我需要一些帮助,我真的无法想象该走哪条路。

我希望你能得到我的分数。

4

2 回答 2

7

我建议您下载DirectX SDK June 2010

DirectX 允许您在创建设备时选择要使用的 DirectX 版本,因此不必担心。

这是在D3D_FEATURE_LEVELD3D11CreateDeviceAndSwapChain中完成的。

指向 D3D_FEATURE_LEVEL 数组的指针,它确定要尝试创建的功能级别的顺序。

我建议您下载 2010 年 6 月的 DirectX SDK 并查看它附带的一些示例。你应该决定如何前进。

对于书籍,我推荐使用 DirectX 11或DirectX 10Directx 9进行 3D 游戏编程简介。您决定使用哪个版本。

于 2013-03-06T19:18:22.320 回答
2

我不会尝试使用没有硬件支持的 CPU 来编写 DirectX 11。这将是一次愉快的经历。相反,我要么购买新的显卡(不必非常昂贵),要么购买 DirectX 9 中的代码。

DirectX 9 编码的背面是它与 10/11 非常不同。所以,如果你有一天想学习 10/11,除了真正的基础知识之外,学习 9 真的对你没有多大帮助。

于 2013-03-06T19:31:11.223 回答