2013年学习DirectX

10

我知道有几个关于这个问题的主题,但我想明确我正在寻找什么。

所以我学习了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

但我有点担心浪费时间在已弃用的旧东西上。

总之,我需要一些帮助,我真的无法想象该选择哪个方向。

希望你能理解我的观点。

2个回答

7
我建议您下载DirectX SDK June 2010
DirectX允许您在创建设备时选择要使用的DirectX版本,因此不用担心这个问题。
这是在D3D11CreateDeviceAndSwapChain中完成的,在D3D_FEATURE_LEVEL中。

一个指向D3D_FEATURE_LEVEL数组的指针,它决定了要尝试创建的特征级别的顺序。

我建议您下载DirectX SDK June 2010并查看一些附带的示例。然后您应该决定如何继续前进。

对于书籍,我建议DirectX 11 三维游戏编程入门DirectX 10DirectX 9。无论你选择哪个版本。


1
我会选择书的9.0c版本。也许不是最专业的选择,但我不会针对高端图形,所以9.0c应该能胜任工作。 - DonCalito

2

如果使用没有硬件支持的CPU编写DirectX 11,我不会尝试。这将是一次不愉快的体验。相反,我会购买一个新的显卡(不需要很昂贵),或者编写DirectX 9。

编写DirectX 9的缺点是它与10/11非常不同。因此,学习9并不能为您提供太多帮助,如果您有一天想要学习10/11,除了基础知识外。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接