3D编程概念指南?

时间:2009-05-04 20:33:39

标签: 3d

我正在尝试将我的游戏开发转移到第三维度,但是我在理解我实际需要做的事情时遇到了一些麻烦。我在使用C和SDL之前创建了一个2D MMORPG,这并不太难。但我似乎找不到任何有用的资源来解释3D编程实际上是如何工作的。我对所涉及的矢量数学有基本的了解,但我似乎无法找到任何关于照明和着色器等其他工作方式的清晰,深入的解释。我已经找到了大量的代码示例等等,但是所有这些都只是引用了一个评论,比如“//应用照明”,这并没有真正告诉我它实际上在做什么以及为什么会这样做。

我不是在寻找API专用教程;学习一个新的API很容易 - 我不知道该怎么做。

6 个答案:

答案 0 :(得分:11)

如果您正在寻找一本书,我强烈推荐Real-Time Rendering。我有本书的第二版,发现在使用3D图形时它是一个很好的资产。这本书解释了3D编程构建模块的内部工作,如变换,光照和纹理。它还探讨了各种高级主题,包括着色器,碰撞检测,加速和优化。

这本书对代码非常清楚。它深入解释算法但不包含实际代码片段。因此,如果你想了解事情是如何运作的,而不仅仅是知道要调用哪个函数,这是非常好的。

答案 1 :(得分:8)

如果您想了解3D计算机图形的概念,渲染教程将不会有太大帮助。当你发现他们教你API时,但没有帮助基本的理解。

你需要grpahics编程的圣经:

http://www.amazon.com/Computer-Graphics-Principles-James-Foley/dp/0201121107

alt text http://introtextbooks.com/wwwstatic/gfx/cover/foley-computer-graphics-principles-and-practice-in-c-2e.jpg

它不包括任何OpenGL,DirectX或着色器,只包括基础知识。但这就是你所需要的。例如:一旦你理解了照明是如何工作的,那么在OpenGL上实现照明的三条线就会突然变得非常有意义。

答案 2 :(得分:5)

我建议你查看NeHe OpenGL tutorials,从最简单的那个开始,然后学习一点OpenGL。一个好的OpenGL参考(例如Red Book,虽然开始时可能有点先进)也将是一个很大的帮助。

答案 3 :(得分:3)

The Red Book - 它几乎是一个教你需要了解OpenGL的东西(初学者 - 中级)的来源。这些概念可以很容易地移动到任何其他3D库。这也有一个免费的在线版本!

答案 4 :(得分:2)

“当天”的标准文本是Foley and Van Dam,其中涉及的一些主题有点长,但三维变换和投影背后的基础数学没有改变。

Alan Watt's文字也不错,但实际上并不是一本介绍性的书。

你也可以查看David Eberly's网站,他已经写过几本关于这个主题的书籍,并且还有大量的相关信息。期待大量的数学。

答案 5 :(得分:1)

如果您对使用C#编写XBOX 360感兴趣,可以查看XNA Framework。 This website有很多关于XNA的教程,我强烈建议您尝试一下。只需导航到侧栏(右侧)并单击3D部分。