学习directx的先决条件

时间:2009-11-14 17:45:14

标签: graphics directx

我来自.net C#背景,我想学习DirectX。我对C ++有所了解,但我对图形世界还很陌生。

我对如何开始学习directx感到困惑,如果我直接开始直接学习或购买像hern和baker这样的基本图书,然后跳转到directx。

这是学习基本图形概念的推荐书,是hern和baker吗?是否有任何直接书也将涵盖图形概念?

我认为保留基本的图形书总是好的,因为我可以随时使用它作为参考

专家提出的任何建议吗?

3 个答案:

答案 0 :(得分:9)

你说你有一个C#背景,所以我假设你对C#和C ++更熟悉。另外,你说你已经掌握了C ++知识,所以我假设你已经对内存管理有所了解。

如果您只想学习并熟悉图形管道,请查看SlimDXXNA。它们都允许您使用DirectX而无需深入研究C / C ++。

至于是否首先学习理论或API,我认为你不应该先做任何一个。以异步方式学习它们是有意义的。拿起一本关于理论的书,但同时还要乱用API。

我强烈推荐XNA。人们通常会说如果你想开发游戏你应该坚持使用C ++,但我强烈不同意。与单独使用C ++和DirectX相比,XNA将允许您在更短的时间内学习更多高级游戏概念。您将能够专注于学习为什么要做某事而不是如何管理记忆。如果将来你认为游戏开发是一种严肃的激情,那么C ++就是最佳选择。您会发现XNA的图形管道与DirectX 9密切相关,并且在转向C ++时不会有太多麻烦。

此外,对于任何初学者来说,DirectX 9应该足够好了,它可以让你更好地理解10和11中事情发生变化的方式和原因。但是,如果你真的想要尖端技术,你可以尝试SlimDX,这是DirectX的C#包装器。


有了这一切,XNA提供了许多易于理解的样本,您可以在educational catalog page上开始玩。另外,请查看ziggyware(xna教程的精彩集合)。

此外,您可以查看许多博客。他们中的很多人都有很好的教程。这里有一些我的头脑:


最后,这里有2本图书,我强烈推荐(它们相当复杂,可以持续很长时间):

它们与DirectX没有直接关系,但它们涵盖了每个图形开发人员应该知道的理论。 (从线性代数到纹理映射到体积矩阵渲染......)

答案 1 :(得分:2)

我必须不同意C#选项。如果您没有完成游戏的截止日期,那么我建议您使用最能教您的语言。使用3d图形是很多关于管理的,所以如果你正在使用它,你实际上并不是在学习,而只是使用它,即。你不仅要管理内存,还要管理你做的实际渲染调用和设备状态的变化,很多事情你永远不会知道通过更低级别,并适用于其他API,如OpenGL或其他类型的设备。我认为了解api如何工作的最好方法是使用api,而不是一堆帮助库。您可以在需要时使用帮助程序库(无论如何都可以在C ++版本中找到)。

在DX SDK中,您还可以找到包含一些示例应用程序及其文档的示例浏览器,并且您拥有DirectX实用工具包,其中包含用于制作DirectX应用程序的框架和库,而无需担心令人讨厌的设备问题。作为枚举和配置。它还带有GUI系统和设备配置的设置对话框。我怀疑你能在C#中找到它们,如果你想从DX开始,它们会非常好。

我开始时帮助我的一些资源是 the zophusX tutorials

和一本名为“DirectX 9.0c的3D游戏编程简介”的书,作者:Frank D. Luna(现在有DX10版本) 也许Stephan Zerbst撰写的3D游戏引擎编程书也帮助我理解了如何使用apis更好地工作。虽然您可能需要购买它们才能阅读它们。它们有助于从一些理论开始并同时使用API​​。

我认为如果您的目标是学习如何制作游戏,那么您可以使用任何您想要的语言/库甚至不需要了解编程语言:)但如果您的目标是学习DirectX和图形API,那么应该明确地从C ++ api开始,这是“实际的”DX。

答案 2 :(得分:1)

如果你有一点额外的钱,我对来自http://www.gameinstitute.com的DirectX图形课程印象非常深刻。就我见过的其他DirectX书而言,他们提供的教科书非常好。在开始设置和使用DirectX之前,第一个模块DirectX Graphics I首先进行了一些数学评论和一些3D基础知识。在第一个模块结束时,您将构建一个纹理地形渲染器和一个室内场景。

总体而言,当您考虑有关该主题的书籍费用时,课程并不昂贵。我肯定会建议你查看它!