计算机图形学需要的数学基础,取决于希望进入这个领域的深度。如果单纯使用现成的图形引擎或者编辑程序,几乎不需要太多专门的数学知识;如果想要系统学习计算机图形学,那么需要学习代数、三角函数和线性代数;如果需要成为图形学的研究者,那么就应该持续不懈地学习数学。计算机图形学一些领域并不太关心数学思想。但是,如果愿意学习新的数学思想,那么将会有更多选择的自由。
计算机图形学与其他基础学科一样,在中国的发展非常缓慢,如果兴趣在于计算机图形学较为底层的部分,很可能长期会处于孤身探索的状态中。出国或者有目的地选择国内导师是更棒的选择。博主学习过程中没有人能切身指导和交流,这是一种无形的天花板。
拥有高中水平的代数和三角学知识就可以开始学习计算机图形学。解开一组简单方程的未知数,使用三角函数以及一个角度来计算几何图形的变长关系等等。但计算机图形学并不需要太多几何知识。因为几何学科是构建数学证明的课程,而几何类的定理和证明在计算机图形学中并不常用。
书籍推荐:Computer Graphics: Principles and Practice. 3rd edition
线性代数的思想被用在计算机图形学的各个领域中。事实上,任何涉及几何的领域都会使用诸如 x,y,z 位置等合称为矢量的数学对象,而矢量和矩阵的语言是描述物体旋转,移位,或者缩放的方法。任何想用计算机图形学工作的人最终都应该在这个课题上有扎实的基础。线性代数也通常是各大图形学书籍的第一章。
推荐书籍:Linear Algebra and Its Applications, 4th Edition
微积分知识是高级计算机图形学的重要组成部分。因为它是这个领域经常使用的工具的集合,经常被用来描述具体问题和解决方案。而且,一些重要的数学领域需要微积分作为先决条件。
微分几何研究的是使用方程来管理光滑的曲线和曲面的方法。如果你正在试图找出一个光滑的表面(“法向量”)垂直于(直接远离)的方向,那么你正在使用微分几何。使车辆以特定的速度沿着弯曲路径行进也是微分几何。在图形中有一种常见的技术,使得光滑的表面看起来粗糙,称为“凹凸贴图”,并且该方法利用微分几何。如果打算使用曲线和曲面进行形状创建(在图形领域中称为“建模”),那么应该至少了解微分几何的基础知识。
书籍推荐:Elementary Differential Geometry, Revised 2nd Edition
在计算机中表示和运算数字时,特别是浮点数,往往使用的是近似值而不是精确值,因为一个无理数需要无穷大的空间来进行存储。而这些错误很可能会累计造成较大的错误蔓延。求解给定的数值问题的方法通常有许多,计算机图形学中使用的主要包括下列领域——采样理论、矩阵方程、微分方程的数值解和优化。
在计算机图形学中,图像或者曲面等等都表示为数组的集合,而最多使用二维数组来进行存储。每次获取集合中的值时,就需要进行“采样”,所有如果要使用和控制采样的质量,就需要理解采样理论。比如说,图形学中一个常见的问题是抗锯齿技术,使用好的采样技术可以极大降低锯齿混跌。采样理论的核心是卷积、傅里叶变换以及函数的空间和频率等概念,这些思想在图像和音频处理领域也很重要。
书籍推荐:The Fourier Transform and Its Applications
计算机图形学中许多问题都需要矩阵方程的数值解。比如说,找到最佳的位置和方向来将两个物体匹配起来(“最小二乘”问题),创建一个覆盖给定点集合并具有最小折痕的表面,还有水或者布的模拟。矩阵可谓是计算机图形学使用最多的领域之一。
书籍推荐:Matrix Computations
计算机图形学本身就是和几何密切相关的学科,而计算几何学是研究在计算机内表示和操作几何图形的有效方法。典型的问题包括测试碰撞,三角剖分,找到一组点中离特定位置最近的点。这个领域融合了算法、数据结构和数学,在建模时非常重要。
物理学并不是数学的子范畴,但是它们在计算机图形学中是紧密相连的。涉及物理学的图形问题的例子包括光线和物理表面的相互作用,光线在复杂环境中的反射方式,人和动物的移动方式以及水和风的运动。物理知识对于模拟计算机图形学中的事物非常重要,而且它们往往和解微分方程密切相关。
求解微分方程对于计算机图形学是非常重要的。物理模拟通常导致微分方程的数值解。注意,绝大多数微分方程是很难精确求解的,所以那些解特殊形式微分方程的技巧并不是绝对重要的。
在物理模拟中,往往将世界分解成小块,这些小块表示为大向量。世界各部分的关系记录在矩阵中,所以求解产生的矩阵方程通常不是完全正确的,而是通过执行一系列长计算的近似解,这就是微分方程的数值解。
在计算机图形学中,有时需要一些优化措施来降低计算量。比如渲染灯光被遮挡的复杂场景,大量光线无法进入被遮挡区域,同样质量的图片需要大得多的计算量。找到一种方式可以得到最优的光线计算方式就很有必要,所以将机器学习引入计算机图形学就需要优化理论。十年前,使用优化技术的图形学文献很少,但近期的工作中越来越多。优化理论将会在计算机图形学中扮演越来越重要的角色。
计算机图形学中有许多困难的方程难以求解,比如,渲染方程。解决困难方程的一个常用技巧就是利用随机数来估计求解。其中比较有名的示例就是蒙特卡罗方法。
本文来自佐治亚理工学院Greg Turk教授的文章Mathematics for Computer Graphics,这篇文章写作于1997年。博主进行了少量删减和修改,并翻译为中文,希望对有志于深挖计算机图形学的同学们有所帮助。文中推荐的书籍大多数已经有了更新版,获取最新版即可。
转载请带上本文永久固定链接:http://www.gleam.graphics/mathematics-for-computer-graphics.html
偶然间发现的博客主,不错哇