哪本书可以涵盖3D游戏开发数学理论?

14

我通过阅读书籍学习C++和面向对象编程没有任何困难。但是,我真的想进入3D游戏开发领域,但我觉得我的数学技能还不够发达。我希望能够理解点积、叉积、法线、向量等概念。我也听说微积分对此非常重要,以及线性代数。

我还想能够理解如何实现视锥体裁剪、八叉树、3D照明等功能。因为现在,当我跟随这些功能的教程时,我感觉我只是在复制代码,完全不理解其中的数学知识。

不幸的是,我在大学学的计算机科学专业并没有侧重于数学,而是侧重于编程、硬件和网络。因此,我从未上过微积分课程。

有什么书可以理解这些概念呢?

谢谢


http://www.amazon.com/Primer-Graphics-Development-Wordware-Library/dp/1556229119 - Benjamin Lindley
5个回答

6
任何Dave Eberly的书籍(http://www.geometrictools.com/),如“3D游戏引擎设计”或“3D游戏引擎架构”,都是找到与3D游戏开发直接相关信息的不错选择。他的网站也包含丰富的信息。
另一个我想到的是《实时渲染》一书(http://www.realtimerendering.com/)。同样,该网站本身也包含丰富的信息。
我能给你的最好建议是应用你所读的。一旦你理解了理论,看到这些概念在实践中的运用将会更加掌握主题。

3
“than studying abstract linear algebra will” - 我有些不同意,如果你不了解抽象的东西,那么你可能会像复制和粘贴教程代码一样;否则你写的数学代码只会变成无法重用的混乱。 - peter karasev
完全同意。我想表达的是,将所学应用于实践中的实际价值在理解一些理论方面是无法估量的。在涉足计算机图形之前,我自己学习了线性代数。我只是注意到,实际应用其中一些概念在我对之前大致了解的东西有了更深刻的理解方面给予了巨大帮助。我根本没有贬低研究抽象数学概念或者建议盲目地实施或复制已有成果的意思。 :) 感谢您的评论。 - Bart

5
“OpenGL红宝书”从应用的角度提供了一些好的内容:http://www.amazon.com/OpenGL-Programming-Guide-Networking-Technology/dp/0321173481
如果你想自己推导半抽象问题的解决方案,这本线性代数书是很棒的选择:http://www.amazon.com/Linear-Algebra-Applications-Differential-Equations/dp/0471174211
引用:“当我按照这些教程做事情时,我感觉我只是在复制代码。”
很难取代在大学环境中被迫做数学问题的压力...你必须努力去获得收益,并放松对于让复杂的代码工作的渴望。选择极其简单的东西,比如绘制XYZ轴和可视化矩阵变换,并从数学/零开始完成,不使用任何API调用。

你可能想要获取Matlab或(免费/开源)Octave...然后你可以打开一个shell,快速尝试验证你的理解。Octave在Ubuntu软件包中。Matlab更好,但不是免费的。 - peter karasev

3

《3D游戏编程与计算机图形学的数学基础》作者Eric Lengyel(Charles River Media Inc.)。

我经常使用这本书,因为它涵盖了所有关于3D计算和图形的线性代数。从LA的基础知识、变换、几何、光线追踪、照明数学、可见性、碰撞检测(棘手的部分)以及更高级的主题,如线性/旋转物理、流体模拟和多边形技术。

它的重点在于理解数学并实现它。


2
我认为非常好的资源,并且我仍然不时地回头去复习一下的是《图形和游戏开发的3D数学入门》。另外,关于微积分和线性代数,我觉得可汗学院提供的资源很适合恢复大学课程的记忆……有时它会从实际的角度来解释问题,而且那个人真的很擅长让科目变得有趣和娱乐。

+1 提到可汗学院。Sal 是我的英雄。虽然我很惊讶他还没有涉足计算机科学领域。 - Benjamin Lindley

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接