Graphics 学习directx的先决条件

Graphics 学习directx的先决条件,graphics,directx,Graphics,Directx,我来自.NETC#背景,我想学习DirectX。我有C++的知识,但我对图形世界比较陌生。 对于如何开始学习directx,我有点困惑,我应该直接开始学习directx,还是买一本像hern和baker这样的基本图形书,然后跳到directx 哪本书是学习基本图形概念的推荐书,是hern和baker吗?是否有任何directx书籍也会介绍图形概念 我认为保存一本基本的图形书总是很好的,因为我可以随时把它作为参考 这里有专家的建议吗? < P>你说你有C语言背景,所以我假设你对C语言和C++比较满

我来自.NETC#背景,我想学习DirectX。我有C++的知识,但我对图形世界比较陌生。 对于如何开始学习directx,我有点困惑,我应该直接开始学习directx,还是买一本像hern和baker这样的基本图形书,然后跳到directx

哪本书是学习基本图形概念的推荐书,是hern和baker吗?是否有任何directx书籍也会介绍图形概念

我认为保存一本基本的图形书总是很好的,因为我可以随时把它作为参考

这里有专家的建议吗?

< P>你说你有C语言背景,所以我假设你对C语言和C++比较满意。此外,你还说你有C++的知识,所以我假设你已经对内存管理有了了解。p> 如果您只是想学习并更熟悉图形管道,那么您应该查看并使用它。它们都允许您使用DirectX,而不必深入C/C++

至于是先学理论还是先学API,我认为你不应该先学。异步学习它们是有意义的。拿起一本关于该理论的书,但同时又会弄乱API

我强烈推荐XNA。人们通常说,如果你想开发游戏,你应该坚持C++,但我强>强<强>不同意。XNA将允许你在比使用C++和DirectX单独的时间内学习更多的高级游戏概念。你将能够专注于学习为什么要做某事,而不是如何管理记忆。如果你在未来决定游戏开发是一种严肃的激情,那么,无论如何,C++就是你要走的路。你会发现XNA的图形管道紧密地反映DirectX 9,并且不会有太多的麻烦转移到C++。p> 此外,DirectX 9对于任何初学者来说都应该足够好,它将使您更好地理解10和11中的情况是如何发生变化的以及为什么发生变化的。然而,如果你真的想要前沿技术,你可以尝试SlimDX,它是DirectX的C#包装器


综上所述,XNA提供了许多易于理解的示例,您可以开始在他们的应用程序上使用这些示例。另外,请查看(xna教程的伟大收藏)

还有,你可以查看很多博客。他们中的很多人都有很好的教程。以下是我脑海中的一些想法:


最后,这里是我极力推荐的两本图形书(它们非常复杂,会持续很长时间):


它们与DirectX没有直接关系,而是涵盖了每个图形开发人员都应该知道的理论。(从线性代数到纹理映射再到volumetrix渲染…

如果你有一点额外的钱,我对来自的DirectX图形课程印象非常深刻。就我所看到的其他DirectX书籍而言,他们提供的教科书非常好。在开始设置和使用DirectX之前,我先从数学复习和一些3D基础知识开始学习DirectX图形的第一个模块。在第一个模块结束时,您将构建一个纹理地形渲染器和一个室内场景


总的来说,当你考虑这本书多少钱的时候,课程就不那么贵了。我绝对推荐你去看看

我不同意C#选项。如果你没有完成游戏的最后期限,那么我建议你使用最能教会你的语言。使用3d图形与管理有很大关系,因此,如果你要避免使用3d图形,你实际上不是在学习,而是在使用它,即,你不仅要管理内存,还要管理实际的渲染调用和设备状态的变化,很多事情是你在避免使用较低级别时永远不会知道的,这也适用于其他API,如OpenGL或其他类型的设备。我认为了解api如何工作的最好方法是使用api,而不是使用一堆助手库。当你真正需要它时,你可以使用辅助库(你可以在C++版本中找到)。p> 在DX SDK中,您还可以找到带有一些示例应用程序及其文档的示例浏览器,还有DirectX实用工具工具包,其中包含一个框架和库,用于制作DirectX应用程序,而无需担心诸如枚举和配置等讨厌的设备问题。它还附带GUI系统和设备配置的设置对话框。我怀疑你能在C#中找到这些,如果你想从DX开始,它们非常好

一些在我开始时帮助我的资源是

以及Frank D.Luna的一本书《DirectX 9.0c 3D游戏编程入门》(现在有DX10版本) Stephan Zerbst的《3d游戏引擎编程》一书可能也帮助我了解了如何更好地使用API。虽然你可能不得不买它们来阅读。它们有助于从一些理论开始,同时使用API


我想如果你的目标是学习如何制作一个游戏,那么你可以使用任何你想要的语言/库,你甚至不需要知道一个编程语言:)但是如果你的目标是学习DirectX和图形API,你应该从C++ API开始,这是“实际”的DX。p> 谢谢Arriu的分享。我从没想到会有人发布如此详细的回复。你有推荐的directx书籍吗?或者我应该通过玩API来学习吗?我不会买directx或任何其他图形API书籍。你会发现你在一两周内就超过了大多数人。在线教程()应该足以教您基础知识。剩下的你自己去拿。然而,我强烈建议你买一本或多本理论书。大多数图形学理论书籍涵盖了所有必要的基础知识,如