简介 点击切换深色模式
First things first, but not necessarily in that order.
— Doctor Who from Meglos (1980)

关于此在线版本

呈现在您面前的内容来自于 一本书。但如今,大多数如 3D 数学和视频游戏编程学习的技术主题,都是在线进行的。因此有些读者可能难以直观地看到技术书籍可能是什么样子。如果您恰好感兴趣,请参看 图 1

图 1实体书籍曾被用来交流技术知识

它包含一些不合时宜的特征,如 ISBN 编号、索引、参考书目、编号的章、节和页,以及未分解为280个字符的文字块,例如您现在正在阅读的连句。这种知识的物理表现形式重量超过4磅(约1.814千克),而且与在线形式相比具有许多优势。例如它可用于帮你顶住门;或用来将显示器垫高到所需的高度;你也可以将之与你收集的其他书籍一起展示在书架上,作为你身份的表达——真实的或你所期望的那样——无论你是否真正读过它们,这都将行之有效!但实体书最大的好处就是一眼就能看出它有多长——您正在阅读一本 850 页的书。

这本书于 2011 年出版。那一年,《英雄联盟》年仅两岁,而《上古卷轴V:天际》刚刚发布,距离 PS4 发售还有两年时间。但我们很高兴地宣布,这本书中的大部分内容,就像比尔博仍然拥有魔戒一样——从未有哪怕一天的老去!向量和矩阵的工作方式与过去一样, F 仍然等于 m a , 而且人们 仍然 在使用 Blinn-Phong 反射模型

然而,书中的一些部分已经略显过时。理论最少而侧重实用性的两个章节《3D图形数学专题》(第 10 章)和《力学II:线性与旋转变化》(第 12 章)尤其需要更新和重新评估。我们没有引用过比十年前的任何出版物或网站。供参考的一些笑话和文化内容已经过时了。我们将努力改进这一点;您可以通过 提供反馈 来帮助我们。

谁该阅读本书?

本书是关于3D数学与3D空间的几何和代数。它旨在教授您如何使用数学来描述物体及其位置、方向和轨迹。这不是一本关于计算机图形学、模拟或计算几何的书。然而如果你打算学习这些主题,本书的内容将会对你非常有用。

本书不仅是为游戏开发者设计的,尽管我们假设大多数读者是为了编程游戏而学习的。但我们希望他能帮助更多的读者,因此我们已经为多样化的受众详细设计了本书的内容。如果你是一名程序员或对学习如何制作游戏感兴趣,欢迎来到这里!如果你不符合上述条件,这本书仍然值得一读。我们已经尽最大努力使本书对设计师和艺术家都有用。虽然本书中有一些代码片段,但(希望)即使非程序员也能轻松阅读。最重要的是,即使在理解代码的过程中也常常需要理解相关的概念。但反过来却不一定成立。我们使用代码示例来说明某些概念如何在计算机上实现,而不是解释这些概念本身。

本书的标题注明为了“游戏开发”,但其中的大部分内容都适用于其他领域。具体来说,任何想要模拟、渲染或理解三维世界的人都可以从中受益。由于我们是游戏设计领域的专家、而且游戏设计的确是我们的目标群体,因此本书涉及一些游戏开发领域的例子。但即使你完成的上一个游戏是太空探索 1, 你也不会被排除在外。如果你的兴趣在于比电子游戏更“成熟”的事物,请放心,本书中并没有充斥着电子游戏中有关爆头或断肢或如何让血液喷射看起来恰到好处的具体示例。

为何阅读本书?

本书有很多独特的特征,包括其主题、方法、作者和写作风格。

独特的主题: 本书填补了其他关于图形、线性代数、模拟、和编程的书籍中所缺少的空白。它是一本入门书籍,意味着我们专注于提供全面的3D概念的覆盖——这些主题通常会在几页简短的内容中被掩盖或被归入其他书籍的附录中(因为毕竟您已经了解了这些) 。我们发现这些主题往往是初学者的症结所在!在某种程度上,这本书是图形、物理和曲线的书籍的完美结合。理想的组合应始于是对数学基础知识的简要概述,然后是对应用领域的深入介绍。因此,我们在对数学基础知识做了全面介绍之后,对应用领域进行紧凑和高屋建瓴的总览。

本书确实试图为初学者提供一个优雅的切入点,但这并不意味着我们将一直纠缠于简单的知识点。书内有大量传统上被认为是“高级”的材料,并在高年级或研究生课程中内容。事实上,这些主题的专业性远大于其难度。而且近来它们已成为需要提前掌握的知识——这恰恰是推动对此类书籍的需求的部分原因。

独特的方法: 所有作者都认为他们在迂腐和健谈之间取得了完美的平衡,以便最好地吸引读者,我们也不例外。然而,我们认识到,那些不同意这种热情洋溢的自我评价的人大多会发现这本书过于非正式(请参阅索引条目“老学究警报”)。我们专注于清晰的解释和直觉,有时我们这样做是以牺牲严谨性为代价的。我们的目标是简化,但不是过度简化。我们引导读者通过一条避开巨魔和龙的路径到达目标。那么,为何在开始旅程之前就将它们全部指出来呢开始旅程呢——甚至我们还没说出我们的目的地是什么、或我们为什么要去那里之前?这是由于我们知道读者最终会自行跨越这些障碍。因此在达到目标后,我们会转身指出曾经的危险所在。但有时我们可能需要将某些巨魔杀戮留给以后再说,特别是如果我们预计您惯常的路径不会让您接近危险。那些打算深耕此领域的读者应该咨询专家以获取更深入的了解。这并不是说我们认为严谨不重要;我们只是认为,在了解了大局之后,更容易获得严谨性,而不是在每次讨论中预先讨论处理边缘情况所需的定义和公理。坦率地说,现在读者可以在 Wikipedia 或 Wolfram MathWorld免费 找到简洁而正式的演示。因此我们认为任何一本书都不会因为过度关注定义、公理、证明、和边缘案例而提供太多值得付费的内容,特别是对于目标读者是工程师的入门材料。

独特的作者: 我们的综合经验将学术权威与实际建议结合在一起。 Fletcher Dunn 自 1996 年以来一直专业制作视频游戏。他在达拉斯的 Terminal Reality 工作,作为首席程序员,他是 Infernal 引擎的架构师之一,也是 BloodRayne 的首席程序员。他是华特迪士尼公司芝加哥 Wideload Games 的技术总监,也是《Disney Guilty Party》(IGN 的 E3 2010 年度家庭游戏)的首席程序员。他现在在华盛顿州贝尔维尤的 Valve Software 工作,并为 Steam 和 Valve 最近的所有游戏做出了贡献。他是 GameNetworkingSockets 网络库和 Steam Datagram Relay 服务的主要作者。但迄今为止,他最出名的还是与《使命召唤:现代战争 2》中的邓恩下士同名。

Ian Parberry 博士拥有超过 35 年的学术研究和教学经验。这是他的第六本书,也是他关于游戏编程的第三本书。他目前是北德克萨斯大学计算机科学与工程系的终身教授。他是全国知名的高等教育游戏编程先驱之一,自 1993 年以来一直在北德克萨斯大学教授游戏编程课程。

独特的写作方式: 我们希望您会喜欢阅读这本数学书。原因有两个:最重要的是,我们希望您从这本书中 学习,学习您感兴趣的东西是很有趣的。其次,我们希望您像喜欢阅读文学作品一样喜欢阅读这本书。我们并不妄想自己与马克·吐温属于同一类人,也不妄想这本书注定会成为像《银河系漫游指南》那样的经典。但人总是可以有愿望的。老实说,我们只是愚蠢的人。与此同时,任何写作风格都不应妨碍首要任务:清晰地传达有关电子游戏的数学知识 2

阅读之前的准备

我们尽力让尽可能多的读者能够阅读这本书。然而,没有一本书可以一路追溯到第一原理。我们期望读者具备以下基本数学技能:

一些编程知识很有帮助,但不是必需的。在一些地方,我们提供了简短的代码片段来展示正在讨论的想法如何转化为代码(而且某些过程在代码中更容易解释。)这些片段非常基础,注释良好,并且只需要对 C 语言语法有最基本的了解(已被复制到其他几种语言)。大多数美术师或关卡设计师应该能够轻松解释这些片段。

综览

如何提供反馈意见?

我们计算了写一本800多页的数学书而不出现错误的几率。结果是一个负数,我们知道这不可能是对的,但可能非常接近。 如果您在本书中发现错误,或有任何反馈,请发送电子邮件至 feedback@gamemath.com 或在推特上联系 Fletcher (@ZPostFacto)。

Careful. We don't want to learn from this.
— Bill Watterson (1958–) from Calvin and Hobbes
  1. 你可能会错过一些笑话,比如这个。对不起。
  2. 这就是为什么我们把大部分的笑话和无用的琐事都放在了这样的脚注中。某些程度上,我们可以尽可能地避开这些。
  3. 习题的答案。