Learning DirectX in 2013
Learning DirectX in 2013
我知道关于这个问题有很多话题,但我想具体说明我在寻找什么。
所以我学习了OpenGL,并获得了着色器(可编程管道),顶点缓冲,索引缓冲的基础知识,所有这些都被称为"现代OpenGL"。我对DirectX是否存在这样的术语很感兴趣。
关于选择哪个DirectX版本有几种意见。9可以在几乎所有的Windows电脑上运行,而11仅限于较新的gpu和Windows Vista+。
我的GPU支持9,而我的操作系统支持11。我应该选择软件加速还是硬件加速?DirectX9是类似于弃用的OpenGL?所以如果我学习DirectX9而不是11,它是浪费时间还是有用?换句话说。DirectX9是否提供了现代OpenGL提供的功能?
如果是这样,我应该使用哪些来源(教程/书籍/视频)来获得在DirectX中使用着色器,缓冲区等的基本技能?例如,在一个教程中,我发现了这一行:d3dDevice -> BeginScene ();它让我想起了被弃用的OpenGL。我不想学习最先进的DirectX,但我想在兼容性和现代概念之间做一个很好的交易。
在另一个线程中,我发现了这本书:http://www.amazon.com/dp/1598220160/?tag=stackoverfl08-20
但是我有点害怕如果我把时间浪费在废弃的旧东西上。
总之,我需要一些帮助,我真的不知道该走哪条路。
我希望你明白我的意思。
我建议您下载DirectX SDK 2010年6月。
DirectX允许你在创建设备时选择你想要使用的DirectX版本,所以不用担心。
这是在D3D_FEATURE_LEVEL中的D3D11CreateDeviceAndSwapChain中完成的。
指向D3D_FEATURE_LEVELs数组的指针,D3D_FEATURE_LEVELs决定了顺序要尝试创建的功能级别。
我建议你做的是下载DirectX SDK 2010年6月,并检查它附带的一些示例。然后你应该决定你想如何前进。
对于书籍,我会推荐使用DirectX 11或DirectX 10或DirectX 9的3D游戏编程入门。无论你决定使用哪个版本
我不会尝试使用没有硬件支持的CPU来编码DirectX 11。这将是一次愉快的经历。相反,我要么买一个新的显卡(不必很贵),要么在DirectX 9中编写代码。
在DirectX 9中编码的背面是它与10/11非常不同。所以,如果你有一天想学习10/11,除了真正的基础知识,学习9对你真的没有多大帮助。
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- std::thread and move in visual studio 2013
- rapidJSON and UNICODE in VisualStudio 2013
- In Search of Library for Visual Studios 2013, Where and How to Get
- Learning DirectX in 2013