【问题标题】:Where to start learning math for game programming for a math newbie?从哪里开始为数学新手学习游戏编程的数学?
【发布时间】:2011-04-10 00:57:30
【问题描述】:

我不是编程新手,但我是游戏编程新手。创造游戏一直是我的梦想,因为我今天 21 岁,我认为现在开始比以后更好。

过去我的数学没有问题,但我确实一直觉得我可以解决问题但不明白发生了什么。

“我为什么要这样做,它究竟解决了什么问题?”

如果我想开始学习游戏编程数学,我应该从哪里开始?

编辑:有些人让我说出我在寻找哪种数学,但说实话我什至不知道。我是一个完整的数学新手。我在 Uni 上过微积分课,但就像我说的,我刚刚解决了它们,但并不真正知道为什么或如何。

【问题讨论】:

  • “游戏编程的数学”是一个巨大的话题,首先我建议缩小您的兴趣领域。数学难题?物理模拟? 3D 图形?
  • 非常雄心勃勃。祝你好运@Sergio

标签: math


【解决方案1】:

线性代数和三角函数可能是图形编程中最重要的。这将包括矩阵/向量、点积和四元数之类的东西。在物理学领域,这将是力学和光,它们使用三角。除此之外,还有一些库可以处理最高级的数学问题。

【讨论】:

  • 这里有一些我或我认识的人认为有用的好书:实时渲染、图形和游戏开发的 3D 数学入门以及 3D 游戏编程和计算机图形学的数学。您可以在亚马逊上找到其中的大部分。
【解决方案2】:

如果你有时间阅读,我推荐开源物理和数学教科书light and matter。线性代数也很重要——我喜欢 Strangs 教科书,Linear Algebra。不过,这两种资源都没有特定的面向游戏的重点。

【讨论】:

    【解决方案3】:

    如果您有特定的数学问题,请不要忘记前往http://math.stackexchange.com

    如果你发现你需要一个特定的项目,比如线性代数,谷歌“开放课件”+“主题”。你会发现美国的麻省理工学院在这方面做得很好——他们出版了很多课程。例如:http://ocw.mit.edu/courses/#mathematics

    【讨论】:

      【解决方案4】:

      我认为大多数人给出的答案是“什么样的数学?”是最相关的。

      Ars digita 有一系列关于离散数学的讲座: http://aduni.org/courses/discrete/

      或者,也许您正在寻找物理,而不是游戏的数学,如果是这样的话,有一本不久前出版的书叫做“游戏程序员的物理”。去谷歌上查询。它可能已经绝版,但您仍然可以在图书馆找到它。

      或者您只是在谈论图形的 3d 几何,在这种情况下,您可能根本不想学习数学。只是 DirectX 和 OpenGL(主要是 OpenGL)。

      【讨论】:

        【解决方案5】:

        GameDev.net 是一个很好的资源,他们有一个数学和物理论坛,显然专注于游戏开发。

        http://www.gamedev.net/community/forums/forum.asp?forum_id=20

        【讨论】:

          【解决方案6】:

          弄清楚你需要知道什么的最好方法是尝试做你想做的事情,看看它需要什么。

          如果您可以在任何程度上进行微积分,那么它会有所帮助。另一个答案提到了日常有用的线性代数和三角函数。虽然不知道你需要完成什么,但没有办法说出你需要知道什么,所以只需开始编程并弄清楚你需要什么!如果您在特定问题上需要帮助,请向https://gamedev.stackexchange.com/ 提问。事实上,最近有几个问题只需要三角函数即可解决。

          【讨论】:

            【解决方案7】:
            【解决方案8】:

            如果可以,请不要购买任何书籍。相反,从网上下载书籍。如果您必须购买(有些书值得购买),请购买二手书(例如,从 abebooks 购买)。教科书行业是个骗局。

            • 在数学方面,您至少需要了解基本几何和线性代数。
            • 对微积分有所了解会很有帮助。
            • 一些统计数据并没有什么坏处。
            • 上述四门科目通常在大学第一年教授(即在北美)。他们并不难。一个坚定的人在数学方面并非毫无希望,可以在一个夏天的过程中涵盖欧几里得几何、线性代数、微积分和统计学的基础知识,而无需过度努力(每天 2-3 小时就可以完成)。
            • 数值分析与计算高度相关。学习数值分析需要精通线性代数。

            随着您在数学方面的进步,您自然而然地在编程方面也会变得更好。

            除了数学之外,您可能还想学习一些物理学,尤其是基本力学。

            祝你好运,玩得开心!

            【讨论】:

              【解决方案9】:

              游戏开发中最相关的“高级”数学是矩阵和向量操作。这些被认为是线性代数的一部分。矩阵和向量是 2D 和 3D 图形和物理中使用的数据类型。矩阵通常表示对象的比例、方向和位置。向量通常表示空间中的一个点或该方向上的一个方向和大小。

              非常熟悉这些概念及其操作,这对于任何游戏开发领域都至关重要,即使您没有直接与它们互动。如果您触摸以任何物理方式交互的图形、动画、位置音频、碰撞检测/反应、物理或游戏对象,那么您将大量使用矩阵和向量。

              唉,我发现很难在文学中找到实用的数学教学。更多的时候不是它被埋在理论的层层之下。我喜欢被告知,一个 4 x 4 矩阵可以存储一个位置向量和三个轴向量,这些向量表示对象的位置、方向和比例。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2012-01-26
                • 2010-09-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-03-23
                相关资源
                最近更新 更多