Mathematics for Computer Graphics
Greg Turk, August 1997
'What math should I learn in order to study computer graphics?' This is perhaps the most common general question that students ask me about computer graphics. The answer depends on how deeply you wish to go into the field. If you wish to begin to use off-the-shelf graphics programs then the answer is that you probably do not need to know very much math at all. If you wish to take an introductory course in computer graphics, then you should read the first two sections below for my recommendations (algebra, trigonometry and linear algebra). If you want some day to be a researcher in graphics then I believe that you should consider your mathematics education to be an ongoing process throughout your career.
If you do not particularly care for mathematics, is there still a chance of working in the field? Yes, a few areas within computer graphics are not much concerned with mathematical ideas. You should not give up on graphics just because you are not a math wizard. It is likely, however, that you will have more freedom in choosing research topics if you have a willingness to learn about new mathematical ideas.
There is no absolute answer to what mathematics is important in computer graphics. Different areas within the field require different mathematical techniques, and your own interests will likely lead you towards some topics and may never touch others. Below are descriptions of a number of areas in mathematics that I believe are useful in computer graphics. Do not feel that you need to be an expert in each of these areas to become a graphics researcher! I deliberately included many areas below to give a fairly broad view of the mathematical ideas used in graphics. Many researchers, however, will never find the need to look at some of the topics that I mention below.
Finally, although it should be clear from reading this, the opinions given within this document are entirely my own. It is likely that you would get a different list of topics or at least different emphases from other people who work in computer graphics. Now on to the list of topics.
Algebra and Trigonometry
High-school level algebra and trigonometry are probably the most important areas to know in order to begin to learn about computer graphics. Just about every day I need to determine one or more unknowns from a simple set of equations. Almost as often I need to perform simple trigonometry such as finding the length of the edge of some geometric figure based on other lengths and angles. Algebra and trigonometry are the subjects that will solve such day-to-day tasks in computer graphics.
What about the geometry that we learn in high school? It may come as a surprise, but our high school geometry is not very often needed for most tasks in computer graphics. The reason for this is that geometry as it is taught in many schools actually is a course in how to construct mathematical proofs. While proof construction is definitely a valuable intellectual tool, the actual theorems and proofs from your geometry class are not often used in computer graphics. If you go to graduate school in a mathematics related field (including computer graphics) then you may well find yourself proving theorems, but this is not necessary in order to start out in graphics.
If you have a good understanding of algebra and trigonometry then you are quite prepared to begin reading an introductory book in computer graphics. Most such books contain at least an abbreviated introduction to the next important area of mathematics for computer graphics, namely linear algebra.
Linear Algebra
The ideas of linear algebra are used throughout computer graphics. In fact, any area that concerns itself with numerical representations of geometry often will collect together numbers such as x,y,z positions into mathematical objects called vectors. Vectors and a related mathematical object called a matrix are used all the time in graphics. The language of vectors and matrices is an elegant way to describe (among other things) the way in which an object may be rotated, shifted (translated), or made larger or smaller (scaled). Linear algebra is usually offered either in an advanced high school class or in college. Anyone who wishes to work in computer graphics should eventually get a solid grounding in this subject. As I mentioned before, however, many textbooks in graphics give a reasonable introduction to this topic-- often enough to get you through a first course in graphics.
Calculus
Knowledge of calculus is an important part of advanced computer graphics. If you plan to do research in graphics, I strongly recommend getting a basic grounding in calculus. This is true not just because it is a collection of tools that are often used in the field, but also because many researchers describe their problems and solutions in the language of calculus. In addition, a number of important mathematical areas require calculus as a prerequisite. This is the one area in mathematics in addition to basic algebra that can open the most doors for you in computer graphics in terms of your future mathematical understanding.
Calculus is the last of the topics that I will mention that is often introduced in high school. The topics to follow are almost always found in college courses.
Differential Geometry
This area of mathematics studies equations that govern the geometry of smooth curves and surfaces. If you are trying to figure out what direction is perpendicular to (points directly away from) a smooth surface (the 'normal vector') then you are using differential geometry. Making a vehicle travel at a particular speed along a curved path is also differential geometry. There is a common technique in graphics for maki
剩余内容已隐藏,支付完成后下载完整资料
数学在计算机图形学中的应用 的计算机图形学指的是传统的三维建模,绘制动画等,而广义的计算机图形学还包括计算机图
像处理,视频处理,计算机视觉和机器学习等领域。 等,你并不需要知道多少数学知识;通过掌握简单的概念和阅读使用教程你就能使用这些软件 的基本功能;但是如果你想熟练使用这些软件,你还是需要学习计算机图形学的一些入门知识
的;
基本知识;这也是要成为图形软件高手所必须掌握的; 要的是,从以前看似枯燥的数学到看到它的实际应用的过程中,你会更容易享受数学的美妙。 在你不断进行计算机图形学的研究的过程中,你会感觉到你的数学知识越来越不够用,从而真
正理解“数学不是没有用,而是不够用!”。 形学的确有一些方面是不需要考虑太多的数学问题的。你不应该因为数学成绩不好而放弃它, 如果你对计算机图形学具有强烈兴趣和好奇心的话,而且你还特别喜欢和擅长计算机编程的话。 不过,如果学习了更多的数学知识,那么你将在研究课题上有更多的选择余地。如果你要做很 好的计算机图形学的研究工作,那么建议你还是多学习一些数学。 对于在计算机图形学中哪些数学才是重要的?这个问题是没有明确的答案的。这领域里不 同的方面要求掌握不同的数学知识,当然也许兴趣将会决定你的方向。那些基本的数学知识和
分析能力是最重要的,而其他的数学则是根据你所从事的方向相关。 者就必须精通各门数学!在大学里,你所学的那些数学看起来都很抽象,枯燥无味,这是因为 你并不知道它们的用处,甚至连讲课的老师也不知道,而你们的目的只是记住那些定理和公式, 考个好分数。与大学学习数学不一样的是,你在计算机图形学的学习和研究过程中会感受到数 学的用处和美妙,这时你学习数学的目的将更加明确,兴趣将更加浓厚,学习方法将更加有效。因为你是在使用数学的过程中在学习数学!想想看你是如何学会中文说话的?为了对用于计算机图形学的 数学有一个全面的看法,这里特地列出了很多方面。注意,不是这里提到的每个方面你都必须 熟悉,许多研究工作者从不需要考虑下面提到的某些数学知识,成功的研究者总是将某一方面
的数学知识和数学工具用到最好! 是我个人的观点。也许你应该阅读更多的此类文章,或者至少从其他从事计算机图形学工作的人
那里了解不同的学习重点。 我从简单的方程解出一个或更多的根。我时常还要解决类似求一些几何图形边长的简单三角学
问题。代数和三角学是计算机图形学的最基础的知识。 并不经常被用到。原因是许多学校教的几何学实际上是如何建立数学证明的课程。虽然证明题 对提高智力显然是有效的,但对于计算机图形学来说,那些与几何课有关的定理和证明并不常 被用到。如果你毕业于数学相关专业(包括计算机图形学),就会发现虽然你在证明定理,不
过这对开始学习图形学不是必要的。
算机图形学的数学——线性代数,多数此类书籍至少包含了一个对线性代数的简要介绍。 z坐标之类的数值,我们称之为矢量。计算机图形学自始至终离不开矢量和矩阵。用矢量和矩 阵来描述旋转,平移,或者缩放是再好不过了。高中和大学都有线性代数的课程。只要想在计 算机图形学领域工作,就应该打下坚实的线性代数基础。我刚才提到,许多图形学的书都有关
于线性代数的简要介绍——足够教给你图形学的第一门课。 对微积分学有初步认识。理由不仅仅是微积分学是一种很有用的工具,还有许多研究者用微积 分学的术语来描述他们的问题和解决办法。另外,在许多重要的数学领域,微积分学被作为进 一步学习的前提。学习了基本代数之后,微积分学又是一种能为你打开多数计算机图形学与后
来的数学学习之门的课程。 并垂直于曲面的矢量(法向矢量)就会用到微分几何学。让一辆汽车以特定速度在曲线上行驶 也牵涉到微分几何学。有一种通用的绘制光滑曲面的图形学技术,叫做“凹凸帖图”,这个技 术用到了微分几何学。另外,要研究曲面的一些几何性质,如曲率、可展性、测地性质等,需 要较多的微分几何知识。如果要着手于用曲线和曲面来创造形体(在图形学里称之为建模),
你至少应该学习微分几何学的基础。 是会有误差。而且对于给定的数值问题,常常有多种解决的方法,一些方法会更快,更精确或 者对内存的需求更少。数值方法研究的对象包括“计算方法”和“科学计算”等等。这是一个 很广阔的领域,而且我将提及的其他几门数学其实是数值方法的一些分支。这些分支包括抽样
法理论,矩阵方程组,数值微分方程组和最优化。 图片和曲面。这时,我们就要用抽样法来表示这些对象。如果要控制这些对象的品质,抽样法 理论就变得尤为重要。抽样法应用于图形学的常见例子是当物体被绘制在屏幕上时,它的轮廓 呈现锯齿状的边缘。这锯齿状的边缘(被认为是“混淆”现象)是非常让人分散注意力的,用 抽样法中著名的技术例如回旋,傅立叶变换,空间和频率的函数表示就能把这个现象减少到最
小。这些思想在图像和音频处理领域是同样重要的。 好的位置与方向以使对象们互相匹配(最小二乘法),创建一个覆盖所给点集的曲面,并使光 滑程度最大(薄板样条算法),还有材质模拟,例如水和衣服等。在图形学里矩阵表述相当流
行,因此在用于图形学的数学中我对矩阵方程组的评价是很高的。 学和数学是紧密联系的。在图形学里,牵涉物理学的问题包括光与物体的表面是怎样互相影响 的,人与动物的移动方式,水与空气的流动。为了模拟这些自然现象,物理学的知识是必不可
少的。这和解微分方程紧密联系,我将会在下一节提到微分方程。 机图形学致力于模拟源于真实世界的物理系统。波浪是怎样在水里形成的,动物是怎样在地面 上行走的,这就是两个模拟物理系统的例子。模拟物理系统的问题经常就是怎样解微分方程的 数值解。请注意,微分方程的数值解法与微分方程的符号解法是有很大差异的。符号解法求出 没有误差的解,而且时常只用于一些非常简单的方程。有时大学课程里的“微分方程”只教符
号解法,不过这并不会对多数计算机图形学的问题有帮助。 关系就可以用矩阵来描述。虽然要处理的矩阵方程组往往没有很精确的解,但是取而代之的是 经过了一系列的计算,这些计算产生一个表示成数列的近似解。这就是微分方程的数值解法。
请注意,矩阵方程的解法与微分方程数值解法的关系是很密切的。 例如安排灯的位置使得房间的照明看起来有种特殊的“感觉”,动画里的人物要怎样活动四肢 才能实现一个特殊的动作,怎样排版才不会使页面混乱。以上这些例子可以归结为最优化问题。 十年前的计算机图形学几乎没有最优化技术的文献,不过最近这个领域越来越重视最优化理论。
我认为在计算机图形学里,最优化的重要性将会日益增加。 要统计学来分析数据。图形学相关领域涉及人类学科,例如虚拟现实和人机交互(HCI)。另外, 许多用计算机描绘真实世界的问题牵涉到各种未知事件的概率。两个例子:一棵成长期的树,它 的树枝分杈的概率;虚拟的动物如何决定它的行走路线。最后,一些解高难度方程组的技巧用 了随机数来估计方程组的解。重要的例子:蒙特卡罗方法经常用于光如何传播的问题。以上仅
是一部分在计算机图形学里使用概率论和统计学的方法。 分解为三角形,找出最靠近某个位置的点,这个学科包括了运算法则,数据结构和数学。图形
学的研究者,只要涉足创建形体(建模),就要大量用到计算几何学。 更倾向于发掘它们的应用价值。不要惊讶。计算机图形学的许多问题和物理学者与工程师们研 究的问题是紧密联系的,并且物理学者与工程师们使用的数学工具正是计算机图形学研究者们 使用的。多数研究纯数学理论的学科从不被用于计算机图形学。不过这不是绝对的。请注意这 些特例:分子生物学正利用节理论来研究DNA分子动力学,亚原子物理学用到了抽象群论。也 许有一天,纯数学理论也能推动计算机图形学的发展,谁知道呢? 事实上,文章中所提到一些数学分支,按照我国的教育体制,在数学系本科的学生(或者硕 士研究生阶段的理工科学生)基本都能接触到。但是大学所学习的数学比较偏重于证明以构建
完备的数学理论框架,而不太注重实际的使用,现在的大学教师授课的方式也是这样。 就越好,也越快,越扎实。当然,很少有人能精通全部的知识,对于计算机图形学的学习和实 践,应当采取掌握较为广泛的数学知识基础,在需要的时候,对相关的数学知识再进行深入的 学习和挖掘;不要因为自身数学知识的匮乏而沮丧,更不能因此而敌视数学,保持对计算机图
形学强烈的兴趣和乐观上进的学习态度是学习计算机图形学的关键。 被用到,因此你掌握的数学知识会比较全面,也知道如何在实际中应用。这可能是应用数学在 所有学科得到最好的体现。相反,一些做纯理论的数学工作者,掌握的数学知识就是他们所研 究的一块,而对其他的数学知识掌握得就不够好,他们做得比较深入。当然,做应用数学和理 论数学都有值得敬仰的地方,一个侧重在实际应用,而另一个侧重在理论深度,但要做好都不 是很容易。数学说到底还是要学来用的。相对来讲,做计算机图形学能看到学到的数学在实际 中所用了,“所用即所学”。试想一下,当你能看到自己做的美妙的东西被别人看到且被敬仰 的时候,你的成就感一定会很大! 我 剩余内容已隐藏,支付完成后下载完整资料 资料编号:[480090],资料为PDF文档或Word文档,PDF文档可免费转换为Word |
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。