我是一个相对好的程序员,但到目前为止,我主要关注的是使用C#进行应用程序开发。我几乎没有游戏开发和3D引擎的经验 - 我已经开始阅读3d Engines的工作原理,例如:有一个很好的指南解释了如何在C#中开发一个非常简单的基于软件的3D引擎。非常有帮助,但这几乎总结了我对该主题的整体经验。 此外,到目前为止,我还没有真正使用C ++(尽管我已经意识到与C#的基本概念差异,并且会考虑至少达到"足够"速度在那种语言可管理)。
所以无论如何,出于纯粹的个人兴趣,我想开发 - 或者更确切地说,学习如何开发 - 用于教育目的的简单的基于DirectX的3D图形引擎。 我只是对图形部分感兴趣(没有声音/动画/游戏状态/网络或其他什么,只有非常基本的输入)。渲染一些简单的几何体,然后逐步学习如何使用更现代的着色技术来扩展它将很好。
我已经为此找到了一些很好的资源。但在我深入研究这个主题之前:我知道DirectX12即将到来,看看它对系统的演变有多大,我真的不确定是否会对API进行许多重大修改。或者换句话说:我害怕我现在开始学习DirectX 11的东西,并且在几个月后它们都将毫无用处,因为DirectX 12以一种截然不同的方式工作,从编程角度来看,图。
我不确定这已经知道多少,或者是否有开发者以前可以向更广泛的公众开放。但如果它可以告诉你:你们是否会建议我等待DX12,或者从v11开始,因为未来的开发将会非常相似?
为了记录,我当然知道学习DX11在任何情况下都不会受到伤害。但我并不匆忙,如果我现在学习的一半现在已经过了几个月就会过时,我宁愿等到那时再慢慢开始。
答案 0 :(得分:9)
将DX12视为“没有训练轮的DirectX,没有刹车,目前可能没有轮胎”。
DirectX 12拥有丰富的教程,支持库,最佳实践,坚如磐石的驱动程序以及在最终用户计算机上操作系统中广泛部署的支持,将超过几个月。它现在是“流血的边缘”,并且最好由GPU图形编程专家消费,他们积极致力于今天的标题和引擎,他们希望确保一切正常。
对于其他人来说,至少在明年左右学习DirectX 11,并且可能更长时间,这取决于您的应用程序的需求,您的个人技能水平以及您在此期间要学习的重点。 / p>
我可以说的是,学习使用像D3DX这样的legacy DirectX SDK东西来编程DirectX 11对DX12来说是一个死胡同。使用DirectX Tool Kit和DirectXMath之类的“现代”帮助程序为C ++重点关注DirectX 11。
更新: DirectX Tool Kit for DirectX 12现在可以与一些tutorials一起使用。也就是说,最好首先学习Direct3D 11,因为Direct3D 12是专为图形专家设计的API,对新手来说是非常无情的。
答案 1 :(得分:1)
如果切换到版本12,您将学习使用DirectX 11的大部分内容。
事实上,出于您的目的,您可能不需要切换。 DirectX 12基本上牺牲了CPU性能的易用性。它还需要Windows 10,因此在它被广泛使用之前还需要几个月的时间。
DirectX 9仍然广泛用于制作游戏,尽管它的年龄。如果你从头开始,我不会推荐它。
哦,无论你做什么,都不要选择DirectX 10.DirectX 11可以在相同的显卡和操作系统上做同样的事情。