2013年学习DirectX

Don*_*ito 11 c++ windows direct3d directx-11 directx-9

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

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

但是,如果我把时间浪费在被弃用的旧东西上,我有点害怕.

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

我希望你能得到我的观点.

Cae*_*sar 7

我建议你下载2010年6月DirectX SDK.

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

这是在D3D_FEATURE_LEVEL中的D3D11CreateDeviceAndSwapChain中完成的.

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

我建议你做的是下载DirectX SDK 2010年6月,并查看一些随附的样本.比你应该决定如何前进.

对于书籍,我建议使用DirectX 11DirectX 10Directx 9 进行3D游戏编程.哪个版本你决定使用.