http://www.cc.gatech.edu/~turk/math_gr.html . Waral dи,
Mathematics for Computer GraphicsGreg Turk, August 1997"What math should I learn in order to study computer graphics?" This isperhaps the most common general question that students ask me about computergraphics. 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 answeris that you probably do not need to know very much math at all. If you wishto take an introductory course in computer graphics, then you should readthe first two sections below for my recommendations (algebra, trigonometryand linear algebra). If you want some day to be a researcher in graphicsthen I believe that you should consider your mathematics education to be anongoing process throughout your career.
If you do not particularly care for mathematics, is there still a chance ofworking in the field? Yes, a few areas within computer graphics are notmuch concerned with mathematical ideas. You should not give up on graphicsjust because you are not a math wizard. It is likely, however, that you willhave more freedom in choosing research topics if you have a willingness tolearn about new mathematical ideas.
There is no absolute answer to what mathematics is important in computergraphics. Different areas within the field require different mathematicaltechniques, and your own interests will likely lead you towards some topicsand may never touch others. Below are descriptions of a number of areas inmathematics that I believe are useful in computer graphics. Do not feelthat you need to be an expert in each of these areas to become a graphicsresearcher! I deliberately included many areas below to give a fairly broadview 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 givenwithin this document are entirely my own. It is likely that you would get adifferent list of topics or at least different emphases from other peoplewho work in computer graphics. Now on to the list of topics.
Algebra and TrigonometryHigh-school level algebra and trigonometry are probably the most importantareas to know in order to begin to learn about computer graphics. Justabout every day I need to determine one or more unknowns from a simple setof equations. Almost as often I need to perform simple trigonometry such asfinding the length of the edge of some geometric figure based on otherlengths and angles. Algebra and trigonometry are the subjects that willsolve such day-to-day tasks in computer graphics.What about the geometry that we learn in high school? It may come as asurprise, but our high school geometry is not very often needed for mosttasks in computer graphics. The reason for this is that geometry as it istaught in many schools actually is a course in how to construct mathematicalproofs. While proof construction is definitely a valuable intellectualtool, the actual theorems and proofs from your geometry class are not oftenused in computer graphics. If you go to graduate school in a mathematicsrelated field (including computer graphics) then you may well find yourselfproving theorems, but this is not necessary in order to start out ingraphics.
If you have a good understanding of algebra and trigonometry then you arequite prepared to begin reading an introductory book in computer graphics.Most such books contain at least an abbreviated introduction to the nextimportant area of mathematics for computer graphics, namely linear algebra.
Book recommendation:
Computer Graphics: Principles and Practice James Foley, Andries van Dam, Steven Feiner, John Hughes Addison-Wesley [a huge book, but still my favorite]Linear AlgebraThe ideas of linear algebra are used throughout computer graphics. In fact,any area that concerns itself with numerical representations of geometryoften will collect together numbers such as x,y,z positions intomathematical objects called vectors. Vectors and a related mathematicalobject called a matrix are used all the time in graphics. The language ofvectors and matrices is an elegant way to describe (among other things) theway in which an object may be rotated, shifted (translated), or made largeror smaller (scaled). Linear algebra is usually offered either in anadvanced high school class or in college. Anyone who wishes to work incomputer graphics should eventually get a solid grounding in this subject.As I mentioned before, however, many textbooks in graphics give a reasonableintroduction to this topic-- often enough to get you through a first coursein graphics.Book recommendation:
Linear Algebra and Its Applications Gilbert Strang Academic PressCalculusKnowledge of calculus is an important part of advanced computer graphics.If you plan to do research in graphics, I strongly recommend getting a basicgrounding in calculus. This is true not just because it is a collectionof tools that are often used in the field, but also because many researchersdescribe their problems and solutions in the language of calculus. Inaddition, a number of important mathematical areas require calculus as aprerequisite. This is the one area in mathematics in addition to basicalgebra that can open the most doors for you in computer graphics in termsof your future mathematical understanding.Calculus is the last of the topics that I will mention that is oftenintroduced in high school. The topics to follow are almost always found incollege courses.. Waral dи,
Differential GeometryThis area of mathematics studies equations that govern the geometry ofsmooth curves and surfaces. If you are trying to figure out what directionis perpendicular to (points directly away from) a smooth surface (the"normal vector") then you are using differential geometry. Making a vehicletravel at a particular speed along a curved path is also differentialgeometry. There is a common technique in graphics for making a smoothsurface appear rough known as "bump mapping", and this method draws ondifferential geometry. If you plan to do work with curves and surfaces forshape creation (called "modeling" in the graphics field) then you shouldlearn at least the basics of differential geometry. Multivariable calculusis the prerequisite for this area.Book recommendation:
Elementary Differential Geometry Barrett O'Neill Academic PressNumerical MethodsAlmost every time we represent and manipulate numbers in the computer we useapproximate instead of exact values, and because of this there is always thepossibility for errors to creep in. Moreover, there are often manydifferent approaches to solving a given numerical problem, and some methodswill be faster, more accurate or require less memory than others. The studyof these issues goes by a number of names including "numerical methods" and"scientific computing". This is a very broad area, and several of the otherareas of mathematics that I will mention can be considered sub-areasunderneath this umbrella. These sub-areas include sampling theory, matrixequations, numerical solution of differential equations, and optimization.Book recommendation:
Numerical Recipes in C: The Art of Scientific Computing William Press, Saul Teukolsky, William Vetterling and Brian Flannery Cambridge University Press [this is a very valuable reference but is not normally used as a textbook]Sampling Theory and Signal ProcessingOver and over in computer graphics we represent some object such as an imageor a surface as a collection of numbers that are stored in a regulartwo-dimensional array. Whenever we do this we are creating a "sampled"representation of the object. A good understanding of sampling theory isimportant if we are to use and to control the quality of suchrepresentations. A common issue in sampling as it applies to graphics isthe jagged edges that can appear on the silhouette of an object when it isdrawn on a computer screen. The appearance of such jagged edges (one formof a phenomenon known as "aliasing") is very distracting, and this can beminimized by using well-understood techniques from sampling theory. At theheart of sampling theory are concepts such as convolution, the Fouriertransform, and spatial and frequency representations of functions. Theseideas are also important in the fields of image and audio processing.Book recommendation:-baidu 1point3acres
The Fourier Transform and Its Applications Ronald N. Bracewell McGraw HillMatrix EquationsThere are a wide variety of problems that come up in computer graphicsthat require the numerical solution of matrix equations. Some problemsthat need matrix techniques include: finding the best position andorientation to match one object to another (one example of a "leastsquares" problem), creating a surface that drapes over a given collection ofpoints with minimal creases (thin-plate splines), and simulation ofmaterials such as water or cloth. Matrix formulations of problems come upoften enough in graphics that I rank this area very high on my list oftopics to know.Book recommendation:
-baidu 1point3acres
Matrix Computations Gene Golub and Charles Van Loan Johns Hopkins University PressPhysicsPhysics is obviously a field of study in its own right and not asub-category of mathematics. Nevertheless, physics and mathematics areclosely tied to one another in several areas within computer graphics.Examples of graphics problems that involve physics include how lightinteracts with the surfaces of objects, how light bounces around in acomplex environment, the way people and animals move, and the motion ofwater and wind. Knowledge of physics is important for simulating all ofthese phenomena. This is closely tied to solving differential equations,which I shall discuss next.
Numerical Solutions of Differential EquationsIt is my belief that techniques for solving differential equations areextremely important to computer graphics. As we just discussed, much ofcomputer graphics is devoted to simulating physical systems from the realworld. How waves form in water and how an animal walks across the groundare two examples of physical simulation. Simulation of physical systemsvery often leads to numerical solutions of differential equations. Notethat this is actually very different than symbolic solutions to differentialequations. Symbolic solutions are exact answers, and usually can be foundonly for extremely simple sets of equations. Sometimes a college coursecalled "Differential Equations" will only examine symbolic solutions, andthis will not help much for most computer graphics problems.In physical simulation, one breaks the world down into little pieces thatare represented as large vectors. Then the relations between the parts ofthe world are captured in the entries in matrices. Solving the matrixequations that arise is not usually done exactly, but is instead performedby carrying out a long series of calculations that yields an approximatesolution as a list of numbers. This is what numerical solutions ofdifferential equations are about. Note that the solution of matrixequations is an intimate part of numerical solutions to differentialequations.
OptimizationQuite often in computer graphics we are looking for a description of anobject or a collection of objects that satisfies some desired goal.Examples include looking for the positions of lights that give a certain"feeling" to how a room is lit, figuring out how an animated character canmove its limbs to carry out a particular action, and positioning shapes andtext on a page so that the result does not look cluttered. Each of theseexamples can be stated as an optimization problem. Ten years ago there waslittle in the graphics literature that made use of optimization techniques,but the field is using optimization more and more in recent work. I thinkthat optimization will continue to play an increasingly important role incomputer graphics.
Probability and StatisticsThere are a number of areas within computer graphics that make use ofprobability and/or statistics. Certainly when researchers carry out studiesusing human subject, they require statistical methods in order to performthe analysis of the data. Graphics related areas that often make use ofhuman subjects include Virtual Reality and Human-Computer Interaction (HCI).In addition, many computer descriptions of the real world involve usingvarious probabilities that a given action will occur. The probability thata tree limb will branch during growth or that a synthetic animal will decideto walk in a particular direction are two examples of this. Finally, sometechniques for solving difficult equations make use of random numbers toestimate their solutions. An important example of this is a class oftechniques known as Monte Carlo methods that are often used to determine howlight propagates in an environment. These are just a few of the ways thatprobability and statistics are used in computer graphics.
Computational GeometryComputational geometry is the study of efficient ways to represent andmanipulate geometry within the computer. Typical problems include testingwhether two objects collide, deciding how to break up a polygon intotriangles, and finding the nearest point in a group to a given location.This area is a blend of algorithms, data structures and mathematics.Researchers in graphics who work on creating shapes (modeling) draw heavilyupon this area.Book recommendations:-baidu 1point3acres
Computational Geometry in C Joseph O'Rourke Cambridge University Press [undergraduate text]
Computational Geometry: An Introduction Franco Preparata and Michael Shamos Springer-Verlag [the classic text, somewhat dated]Concluding Words: Applied and Pure MathematicsOne common thread to many of the mathematical topics that are associate withgraphics is that they are from the applied side instead of the theoreticalside of mathematics. This should not come as a surprise. Many of theproblems in computer graphics are closely tied to problems that physicistsand engineers have studied, and the mathematical tools of the physicist andof the engineer are overwhelmingly the tools that graphics researchers use.Most of the topics that make up theoretical ("pure") mathematics are seldomput to use in computer graphics. This should not be taken as an absolutetruth, however. We should pay attention to examples from other fields:molecular biology is now drawing upon knot theory for the study of DNAdynamics, and subatomic physics makes use of abstract group theory. Who cantell when a "pure" mathematics topic will be put to use in computergraphics?There are a few areas of mathematics that seem as though they ought to beimportant and yet never really play a large part in computer graphics.Perhaps the most interesting of these areas is topology. The usualone-sentence description of topology is the study of why a doughnut and acoffee cup are the same. The answer is that they are both surfaces with onehole. Here we are talking about ideas from topology. Aren't surfaces a bigpart of computer graphics? Yes, but it turns out that most of the ideas intopology that are useful to graphics can be learned in a first course indifferential geometry. Differential geometry studies the *shapes* ofsurfaces, whereas topology studies things such as which parts of a surfaceare next to which other parts. I have seen very little topology that is putto use in graphics, and I believe that this is because much of topology isconcerned with rather abstract sets, and that much of topology is far removedfrom the concepts in three dimensional Euclidean space that is so central tomost of graphics. There are times when the formalism of topology (thesymbolic notation) is a convenient way to express ideas in graphics, but theactual tools from abstract topology so seldom play a role in graphics.Study this beautiful subject for its own sake, but don't expect an immediatepayoff for graphics!
I have been asked a few times whether either abstract algebra (group theory,rings, etc.) or number theory play a role in computer graphics. Not muchthat I have seen. These subjects, like topology, are areas that are full ofbeautiful ideas. Unfortunately these ideas seldom find their way intocomputer graphics.