计算机图形学数学:数学在计算机图形学中的应用



Greg Turk, August 1997
“学习计算机图形学需要多少数学?”这是初学者最经常问问题答案取决于你想在计算机图形学领域钻研多深如果仅仅使用周围唾手可得图形软件Software你不需要知道多少数学知识如果想学习计算机图形学入门知识我建议你读读下面所写前两章(代数 3角学和线性代数)如果想成为名图形学研究者那么对数学学习将是活到老学到老
如果你并不特别喜欢数学是否仍有在计算机图形学领域工作机会?是计算机图形学确有些方面不需要考虑太多数学问题你不应该数学成绩不好而放弃它不过如果学习了更多数学知识似乎你将在研究课题上有更多选择余地
对于在计算机图形学中哪些数学才是重要还没有明确答案这领域里区别方面要求掌握区别数学知识也许兴趣将会决定了你方向以下介绍我认为对于计算机图形学有用数学别以为想成为名图形学研究者就必须精通各门数学!为了对用于图形学数学有个全面看法我特地列出了很多方面但是许多研究者从不需要考虑下面提到数学
最后虽然读了这篇文章后你应该会对数学在计算机图形学中应用有所了解不过这些观点完全是我自己也许你应该阅读更多此类文章或者至少从其他从事计算机图形学工作人那里了解区别学习重点现在开始切入正题

代数和 3角学
对于计算机图形学初学者来说高中代数和 3角学可能是最重要数学日复我从简单方程解出个或更多我时常还要解决类似求些几何图形边长简单 3角学问题代数和 3角学是计算机图形学最基础知识
那么高中几何学如何样呢?可能让人惊讶不过在多数计算机图形学里高中几何学并不经常被用到原因是许多学校教几何学实际上是如何建立数学证明课程虽然证明题对提高智力显然是有效但对于计算机图形学来说那些和几何课有关定理和证明并不常被用到如果你毕业于数学相关领域(包括计算机图形学)就会发现虽然你在证明定理不过这对开始学习图形学不是必要
如果精通代数和 3角学就可以开始读本计算机图形学入门书了个重要用于计算机图形学数学——线性代数多数此类书籍至少包含了个对线性代数简要介绍
推荐参考书:
Computer Graphics: Principles and Practice
James Foley, Andries van Dam, Steven Feiner, John Hughes
Addison-Wesley
[虽然厚重可是我很喜欢]

线性代数
线性代数思想贯穿于计算机图形学事实上只要牵涉到几何数值表示法,就常常抽象出例如x,y,z坐标的类数值我们称的为矢量图形学自始至终离不开矢量和矩阵用矢量和矩阵来描述旋转平移或者缩放是再好不过了高中和大学都有线性代数课程只要想在计算机图形学领域工作就应该打下坚实线性代数基础我刚才提到许多图形学书都有有关线性代数简要介绍——足够教给你图形学门课
推荐参考书:
Linear Algebra and Its Applications
Gilbert Strang
Academic Press

微积分学
微积分学是高级计算机图形学重要成分如果打算研究图形学我强烈建议你应该对微积分学有初步认识理由不仅仅是微积分学是种很有用工具还有许多研究者用微积分学术语来描述他们问题和解决办法另外在许多重要数学领域微积分学被作为进步学习前提学习了基本代数的后微积分学又是种能为你打开多数计算机图形学和后继数学学习的门课程
微积分学是我介绍最后个中学课程以下提及科目几乎全部是大学课程

微分几何学
微分几何学研究支配光滑曲线曲面方程组如果你要计算出经过某个远离曲面点并垂直于曲面矢量(法向矢量)就会用到微分几何学辆汽车以特定速度在曲线上行驶也牵涉到微分几何学种通用绘制光滑曲面图形学技术叫做“凹凸帖图”这个技术用到了微分几何学如果要着手于用曲线和曲面来创造形体(在图形学里称的为建模)你至少应该学习微分几何学基础
推荐参考书:
Elementary Dferential Geometry
Barrett O\'Neill
Academic Press

数值思路方法
几乎任何时候我们在计算机里用近似值代替精确值来表示和操作数值所以计算过程总是会有误差而且对于给定数值问题常常有多种解决思路方法些思路方法会更块更精确或者对内存需求更少数值思路方法研究对象包括“计算思路方法”和“科学计算”等等这是个很广阔领域而且我将提及其他几门数学其实是数值思路方法些分支这些分支包括抽样法理论矩阵方程组数值微分方程组和最优化
推荐参考书:
Numerical Recipes in C: The Art of Scientic Computing
William Press, Saul Teukolsky, William Vetterling and Brian Flannery
Cambridge University Press
[这本参考书很有价值可是很少作为教材使用]

抽样法理论和信号处理
在计算机图形学里我们反复使用储存在正规 2维数字集合来表示些对象例如图片和曲面这时我们就要用抽样法来表示这些对象如果要控制这些对象品质抽样法理论就变得尤为重要抽样法应用于图形学常见例子是当物体被绘制在屏幕上时轮廓呈现锯齿状边缘这锯齿状边缘(被认为是“混淆”现象)是非常让人分散注意力用抽样法中著名技术例如回旋傅立叶变换空间和频率表示就能把这个现象减少到最小这些思想在图像和音频处理领域是同样重要
推荐参考书:
The Fourier Transform and Its Applications
Ronald N. Bracewell
McGraw Hill

矩阵方程组
计算机图形学许多问题要用到矩阵方程组数值解法些涉及矩阵问题包括:找出最好位置和方向以使对象们互相匹配(最小 2乘法)创建个覆盖所给点集曲面并使皱折程度最小(薄板样条算法)还有材质模拟例如水和衣服等在图形学里矩阵表述相当流行因此在用于图形学数学中我对矩阵方程组评价是很高
推荐参考书:
Matrix Computations
Gene Golub and Charles Van Loan
Johns Hopkins University Press



物理学
物理学显然不是数学分支它是自成学科但是在计算机图形学某些领域物理学和数学是紧密联系在图形学里牵涉物理学问题包括光和物体表面是怎样互相影响人和动物移动方式水和空气流动为了模拟这些自然现象物理学知识是必不可少这和解微分方程紧密联系我将会在下节提到微分方程

微分方程数值解法
我相信对于计算机图形学来说解微分方程窍门技巧是非常重要像我们刚才讨论计算机图形学致力于模拟源于真实世界物理系统波浪是怎样在水里形成动物是怎样在地面上行走这就是两个模拟物理系统例子模拟物理系统问题经常就是怎样解微分方程数值解请注意微分方程数值解法和微分方程符号解法是有很大差异符号解法求出没有误差而且时常只用于些非常简单方程有时大学课程里“微分方程”只教符号解法不过这并不会对多数计算机图形学问题有帮助
在对物理系统模拟中我们把世界细分为许多表示成矢量小元素然后这些元素的间关系就可以用矩阵来描述虽然要处理矩阵方程组往往没有很精确但是取而代的是执行了系列计算这些计算产生个表示成数列近似解这就是微分方程数值解法请注意矩阵方程解法和微分方程数值解法关系是很密切

最优化
在计算机图形学里我们常常为了期望目标寻求种合适描述对象或者对象集思路方法例如安排灯位置使得房间照明看起来有种特殊“感觉”动画里人物要怎样活动 4肢才能实现个特殊动作怎样排版才不会使页面混乱以上这些例子可以归结为最优化问题十年前计算机图形学几乎没有最优化技术文献不过最近这个领域越来越重视最优化理论我认为在计算机图形学里最优化重要性将会日益增加

概率论和统计学
计算机图形学许多领域都要用到概率论和统计学当研究者涉足人类学科时他们当然需要统计学来分析数据图形学相关领域涉及人类学科例如虚拟现实和人机交互(HCI)另外许多用计算机描绘真实世界问题牵涉到各种未知事件概率两个例子:棵成长期树,它树枝分杈概率;虚拟动物如何决定它行走路线最后些解高难度方程组窍门技巧用了随机数来估计方程组重要例子:蒙特卡罗思路方法经常用于光如何传播问题以上仅是部分在计算机图形学里使用概率论和统计学思路方法

计算几何学
计算几何学研究如何用计算机高效地表示和操作几何体典型问题如碰撞检测把多边形分解为 3角形找出最靠近某个位置这个学科包括了运算法则数据结构和数学图形学研究者只要涉足创建形体(建模)就要大量用到计算几何学
推荐参考书:
Computational Geometry in C
Joseph O\'Rourke
Cambridge University Press
[大学教材]
Computational Geometry: An Introduction
Franco Preparata and Michael Shamos
Springer-Verlag
[很经典不过有点旧了]

整理总结:数学应用和数学理论
对于图形学来说以上提到许多数学学科都有个共同点:比起这些数学理论价值我们更倾向于发掘它们应用价值不要惊讶图形学许多问题和物理学者和工程师们研究问题是紧密联系并且物理学者和工程师们使用数学工具正是图形学研究者们使用多数研究纯数学理论学科从不被用于计算机图形学不过这不是绝对请注意这些特例:分子生物学正利用节理论来研究DNA分子动力学亚原子物理学用到了抽象群论也许有纯数学理论也能推动计算机图形学发展谁知道呢?
有些看来重要数学实际上在计算机图形学里不常被用到可能拓扑学是此类数学中最有意思句话来形容拓扑学它研究油炸圈饼和咖啡杯为什么在本质上是相同答案是他们都是只有个洞曲面我们来讨论下拓扑学思想虽然曲面是计算机图形学重要成分不过微分几何学课程已经涵盖了多数对图形学有用拓扑学知识微分几何学研究曲面造型可是拓扑学研究曲面相邻关系我觉得拓扑学对于图形学来说几乎没用这是由于拓扑学关心抽象事物而且拓扑学远离了多数图形学核心—— 3维欧氏空间概念对于图形学来说拓扑学形式(符号表示法)是表达思想简便思路方法不过图形学很少用到抽象拓扑学实际工具对图形学来说拓扑学像个好看花瓶不过别指望它能立即带给你回报
有人曾经这么问我计算机图形学是否用到了抽象代数(群论等等….)或者数论我没如何遇到过和拓扑学这些学科有很多美好思想可是很不幸这些思想很少用于计算机图形学
--The End--

[小鹏翻译 email: [email protected]]



Tags:  计算机图形学应用 计算机图形学的应用 计算机图形学与数学 计算机图形学数学

延伸阅读

最新评论

发表评论