我是一个相对好的程序员,但我的主要焦点是迄今为止使用C#进行应用程序开发。我几乎没有游戏开发和3D引擎的经验 - 我已经开始阅读关于3D引擎如何在一般情况下工作的例子,例如有一篇精彩的指南解释了如何在C#中开发一个非常简单的基于软件的3D引擎。非常有帮助,但是这几乎总结了我对该主题的整体体验。另外,到目前为止,我还没有真正使用过C++(尽管我知道C#的基本概念差异,并且会考虑在该语言中至少达到“足够”的速度)。DirectX/C++ 3D引擎编程:立即了解还是等待DirectX 12?
因此,无论如何,出于纯粹的个人兴趣,我愿意为了教育目的而开发 - 或者说,学习如何开发 - 简单的基于DirectX的3D图形引擎。 我只对图形部分感兴趣(没有声音/动画/游戏状态/网络或其他,只有非常基本的输入)。渲染一些简单的几何图形,然后逐步学习如何用更现代的着色技术来扩展它,那就没问题了。
我已经找到了一些很好的资源。但在深入研究这个主题之前:我知道DirectX12即将发布,并且看到它的发展似乎有多大,我真的不确定是否会对API进行很多重大更改。或者换句话说:恐怕我现在开始学习DirectX 11的东西,从现在开始的几个月内,它们将毫无用处,因为从编程的角度来看,DirectX 12的工作方式截然不同。
我不确定这个数字已经知道了多少,或者是否有开发者以前可以向更广泛的公众提供。但是如果可能已经说过了:你们会推荐我等待DX12,还是从v11开始,因为将来发展将会非常相似?
为了记录,我知道当然学习DX11不会伤害任何情况。但我并不急于求成,如果我现在学习的一半现在已经过了几个月就过时了,我宁愿等到那时才慢慢开始。
的DirectX 9仍然支持三个方面的原因:(一)codepaths已经写了许多发动机和现有的工具,(B)的Xbox 360是的Direct3D 9,虽然它有如此多的扩展,可能是不完全正确的,但它一直处于“ DirectX 9时代设计'活着很长时间,(c)对于专门针对中国或俄罗斯的人来说,你的目标确实是Windows XP。现代Windows平台这就是说,调试和工具支持或Direct3D的9缺乏支持DirectX 9,是越来越多的模仿,而不是在任何意义上是“直接” –
DX11是当前的“甜蜜点”学习的DirectX,并适用到所有受支持的Microsoft平台:Windows Vista SP2 + KB971644或更高版本支持用于Windows桌面应用程序的DX11,并且这是Windows 8.x Store,Xbox One,Windows Phone 8和用于Windows 10的通用Windows应用程序的最低要求。工具支持是很好的,你可以找到很多[遗留D3DX的东西]的替代品(http://blogs.msdn.com/b/chuckw/archive/2013/08/21/living-without-d3dx.aspx)支持DX11。支持库,甚至对DX12的正确使用模式的理解仍在开发中。 –
使用DirectX 9还有另一个原因 - 如果您需要支持旧的D3D9显卡,则可以在DX9上使用Shader model 3(和2a/2b)。 DX 10和11的支持他们,但只支持Shader Model 2 – Adam