DirectX/C++ 3D Engine编程:立即学习,还是等待DirectX 12?

Bog*_*gey 3 c++ directx 3d direct3d game-engine

我是一个相对好的程序员,但到目前为止,我主要关注的是使用C#进行应用程序开发.我几乎没有游戏开发和3D引擎的经验 - 我已经开始阅读3D引擎的一般工作方式,例如,有一本很棒的指南解释了如何在C#中开发一个非常简单的基于软件的3D引擎.非常有帮助,但这几乎总结了我对该主题的整体经验.此外,到目前为止,我还没有真正使用过C++(尽管我已经意识到与C#的基本概念差异,并且会考虑在该语言中至少达到"足够"的速度可管理).

所以无论如何,出于纯粹的个人兴趣,我想开发 - 或者更确切地说,学习如何开发 - 用于教育目的的简单的基于DirectX的3D图形引擎.我只是对图形部分感兴趣(没有声音/动画/游戏状态/网络或其他什么,只有非常基本的输入).渲染一些简单的几何,然后逐步学习如何使用更现代的着色技术扩展它将是好的.

我已经找到了一些很好的资源.但在我深入研究这个主题之前:我知道DirectX12即将到来,并且看到它在多大程度上改进了系统,我真的不确定是否会对API进行许多重大修改.或者换句话说:我担心我现在开始学习DirectX 11的东西,从现在起几个月内,从编程的角度来看,DirectX 12的工作方式会有很大的不同,这一切都是无用的.

我不确定这已经知道了多少,或者是否有开发者以前可以向更广泛的公众开放.但如果它可以告诉你:你们是否会建议我等待DX12,或者从v11开始,因为未来的开发将非常相似?

为了记录,我当然知道学习DX11在任何情况下都不会受到伤害.但我并不急于求成,如果我现在学到的一半在几个月内就会过时,我宁愿等到那时才能慢慢开始.

Chu*_*urn 11

将DX12视为"DirectX没有训练轮,没有刹车,此刻可能没有轮胎".

对于DirectX 12来说,拥有一套丰富的教程,支持库,最佳实践,坚如磐石的驱动程序以及在最终用户计算机上操作系统中广泛部署的支持将超过几个月.它现在是"流血的边缘",并且最好由GPU图形编程专家消费,他们积极致力于今天的标题和引擎,他们希望确保一切正常.

对于其他人来说,至少在接下来的一年左右学习DirectX 11,并且可能更长时间,这取决于您的应用程序的需求,您的个人技能水平以及您在此期间要学习的重点.

我可以说的是,学习使用D3DX这样的传统DirectX SDK编程DirectX 11 对DX12来说是一个死胡同.使用DirectX Tool KitDirectXMath for C++ 等"现代"助手,专注于DirectX 11 .

更新: DirectX 12的DirectX工具包现在可以提供一些教程.也就是说,最好首先学习Direct3D 11,因为Direct3D 12是专为图形专家设计的API,对新手来说是非常无情的.

  • DirectX 12仍然是非常“专家的API”,您确实需要使用DirectX 11的经验来帮助您提高学习难度。尽管现代的[PIX工具](https://blogs.msdn.microsoft.com/pix/)很有帮助,但有时进行调试也很有挑战性。与最初引入时相比,网络上有更多资源可用,正如我在更新中指出的那样,针对DX12_的_DirectX工具套件现在也可以选择。我仍然建议您首先了解DirectX 11。 (2认同)