The application of mathematics in computer graphics
"Note" This article is Turk by Greg. "Mathematics for Computer Graphics, August 1997." and the online translation of the Chinese language is expanded.
"How much math is needed to learn computer graphics. "This is the most frequently asked question for beginners. The narrow sense of computer graphics refers to the traditional three-dimensional modeling, drawing, animation and so on, while the broad sense of computer graphics also includes the image processing, video processing, computer vision and machine learning and other fields.
The answer depends on how deeply you want to delve into the computer graphics field:
L You don't need to know much about math if you just use the handy graphics software, such as Photoshop, 3D Studio Max, Maya, AutoCAD, etc., you can use the basic functions of these software by mastering simple concepts and reading tutorials; But if you want to be proficient These software, you still need to learn some of the basics of computer graphics;
If you want to learn the basics of computer graphics, you need to have at least some basic knowledge of algebra, trigonometry and linear algebra, which is necessary to be mastered as a master of graphic software;
If you want to become a computer graphics research worker, then the study of mathematics will be "live to old, learn old." The important thing is that you will be more likely to enjoy the beauty of math from the previously seemingly boring mathematics to the actual application process. As you continue to study computer graphics, you will feel that your mathematical knowledge is becoming more and more inadequate, so that the real understanding of "mathematics is not useless, but not enough." ”。
If you don't particularly like math, do you still have the opportunity to work in computer graphics. Yes, there are some aspects of computer graphics do not need to consider too many mathematical problems. You should not give up the math because it is not good, if you have a strong interest in computer graphics and curiosity, and you also particularly like and good at computer programming. However, if you learn more about math, you will have more options on the subject. If you want to do a good computer graphics research work, it is recommended that you still learn more math.
Which math is important in computer graphics. There is no clear answer to this question. Different aspects of this field require different knowledge of mathematics, and perhaps interest will determine your direction. Those basic mathematical knowledge and analytical skills are most important, while others are related to the direction in which you are engaged.
Here are some of the math we think are useful for computer graphics. Don't think that the researchers who want to be a computer graphics must be proficient in mathematics. In college, the math you learn seems abstract and boring, because you don't know what they are for, not even the teachers who teach, and your goal is to memorize those theorems and formulas and get a good score. And the University study mathematics is not the same, you in computer graphics learning and research process will feel the usefulness and beauty of mathematics, when you study the purpose of mathematics will be more clear, interest will be more strong, learning methods will be more effective. Because you are learning mathematics in the process of using mathematics. Think about how you learned to speak Chinese. In order to have a comprehensive view of the mathematics used in computer graphics, there are many aspects to be listed here. Note that you must be familiar with every aspect that is not mentioned here, and many researchers do not need to consider some of the mathematical knowledge mentioned below, and successful researchers always use the mathematical knowledge and tools of one aspect to the extreme.
Finally, although read this article, you should have a knowledge of the application of mathematics in computer graphics, but this is also opinion. Perhaps you should read more of these articles, or at least learn about different points of view from other people working in computer graphics.
Elementary algebra and Trigonometry
For beginners of computer graphics, high school algebra and trigonometry may be the most important mathematics. Day after day, I solve one or more roots from a simple equation. I often have to solve simple trigonometry problems similar to the length of the geometry. Algebra and Trigonometry are the most basic knowledge of computer graphics.
So what about the geometry of high school? May be surprising, but in most computer graphics, high school geometry is not often used. The reason is that many school-taught geometry is actually the course of how to establish mathematical proofs. Although the proof problem is obviously effective for improving intelligence, for computer graphics, theorems and proofs related to geometry lessons are not often used. If you graduate from the field of mathematics (including computer graphics), you will find that although you are proving theorems, it is not necessary to begin to learn graphics.
If you are proficient in algebra and trigonometry, you can begin to read an introductory book on computer graphics. The next important mathematics for computer graphics--linear algebra--most of these books contain at least one brief introduction to linear algebra.
Recommended Reference books:
Computer Graphics:principles and Practice
James Foley, Andries van Dam, Steven Feiner, John Hughes
Addison-wesley
Linear algebra
The idea of linear algebra runs through computer graphics. In fact, as long as the geometric numerical notation is involved, we often abstract out values such as x,y,z coordinates, which we call vectors. Computer graphics can be separated from vectors and matrices from beginning to finish. It is better to use vectors and matrices to describe rotations, translations, or scaling. Both high schools and universities have courses in linear algebra. If you want to work in the field of computer graphics, you should lay a solid foundation of linear algebra. As I mentioned earlier, many graphic books have a brief introduction to linear algebra-enough to teach you the first course in graphics.
Mathematical Analysis (Calculus)
Calculus is an important component of advanced computer graphics. If you are going to study graphics, I strongly suggest that you should have a rudimentary understanding of calculus. The reason is not only that calculus is a useful tool, but many researchers use the term calculus to describe their problems and solutions. In addition, in many important fields of mathematics, calculus is used as a prerequisite for further study. After learning basic algebra, calculus is a course that opens up most computer graphics and subsequent math learning.
Differential geometry
Differential geometry studies describe and control the equations of smooth curves and surfaces. If you want to compute a vector (normal vector) that passes through a point that is far away from the surface and is perpendicular to the surface, the differential geometry is used. It also involves differential geometry to allow a car to travel at a particular speed on a curve. There is a general graphic technique for drawing smooth surfaces, called bump graphs, which is used in differential geometry. In addition, it is necessary to study some geometrical properties of surface, such as curvature, malleable, geodesic property and so on, which require more knowledge of differential geometry. If you are going to create a form using curves and surfaces (called Modeling in graphics), you should at least learn the basics of differential geometry.
Numerical method (calculation method)
Almost any time, we use approximate values in the computer to represent and manipulate numerical values, so the computational process always has errors. And for a given numerical problem, there are often a number of solutions, some methods will be more block, more accurate or less demand for memory. The objects of numerical methods include "computational method" and "scientific calculation", etc. This is a very broad area, and the other mathematics I will mention are actually some of the branches of numerical methods. These branches include sampling method theory, matrix equation Group, numerical differential equations and optimization.
Recommended Reference books:
Numerical Recipes in C + +: The Art of scientific Computing
William Press, Saul Teukolsky, William Vetterling and Brian Flannery
Cambridge University Press
Sampling method theory and signal processing
In computer graphics we repeatedly use a set of numbers stored in regular two-dimensional arrays to represent objects, such as pictures and surfaces. At this point, we will use the sampling method to represent these objects. The theory of sampling law becomes particularly important if the quality of these objects is to be controlled. A common example of the application of the sampling method to graphics is that when an object is drawn on the screen, its contours appear jagged edges. This Jagged edge (which is thought to be "confusing") is very distracting and can be minimized by using well-known techniques such as maneuver, Fourier transform, space, and frequency function representations in the sampling method. These ideas are equally important in the area of image and audio processing.
Recommended Reference books:
The Fourier Transform and its applications
Ronald N. Bracewell
McGraw Hill
Matrix calculation
Many problems of computer graphics need to use the numerical solution of matrix Equation Group. Some of the problems involved in matrices include finding the best places and orientations to match objects (least squares), creating a surface covering the given point set, minimizing the crease (thin-plate spline algorithm), and material simulations, such as water and clothing. Matrix representations are quite popular in graphics, so I have a high opinion of the matrix equations in mathematics used in graphics.
Recommended Reference books:
Matrix computations
Gene Golub and Charles Van Loan
Johns Hopkins University Press
Physics (Physical simulation)
Physics is clearly not the branch of mathematics, it is the subject of playing independently. But in some fields of computer graphics, physics and mathematics are closely related. In graphics, problems involving physics include how light and the surface of an object interact with each other, the way people and animals move, and the flow of water and air. In order to simulate these natural phenomena, the knowledge of physics is essential. This reconciliation is closely related to the differential equation, and I will refer to the differential equation in the next section.
Numerical solution of differential equation (finite element method)
I believe that the technique of solving differential equations is very important for computer graphics. As we have just discussed, computer graphics is dedicated to simulating physical systems from the real world. How waves are formed in water, and how animals walk on the ground, is an example of two of simulated physical systems. The problem of simulating the physical system is often how to solve the numerical solution of the differential equation. Note that the numerical solution of differential equations differs greatly from the symbolic solution of differential equations. The symbolic solution is to find the solution without error, and is often used only for some very simple equations. Sometimes the "differential equation" in the university curriculum teaches only symbolic solutions, but this does not help most computer graphics problems.
In the simulation of physical systems, we subdivide the world into a number of small elements that are represented as vectors. The relationship between these elements can then be described by a matrix. Although the matrix equations to be dealt with often do not have a very precise solution, instead, a series of computations are performed, which produce an approximate solution that represents a number of columns. This is the numerical solution of the differential equation. Please note that the solution of the matrix equation is closely related to the numerical solution of the differential equation.
Optimization
In computer graphics, we often seek a suitable method of describing objects or sets of objects for the desired goal. For example, the location of the lamp to make room lighting seems to have a special "feeling", animation characters to how to move limbs to achieve a special action, how to typesetting will not make the page chaos. These examples can be summed up as the optimization problem. Ten years ago, computer graphics had almost no literature on optimization techniques, but more recently this area has focused more on the optimization theory. I think in computer graphics, the importance of optimization will be increasing.
Probability theory and statistics
In many fields of computer graphics, probability theory and statistics are used. When researchers dabble in the human sciences, they certainly need statistics to analyze the data. The relevant fields of graphics are related to human subjects, such as virtual reality and man-machine interaction (HCI). In addition, many of the problems with computers depicting the real world involve the probability of various unknown events. Two examples: a long tree, the probability of its branches branching; how the virtual animal determines its walking route. Finally, some techniques of solving the high difficulty equations are used to estimate the solution of the equations with random numbers. An important example: The Monte Carlo method is often used in the question of how light travels. The above is only part of the use of probabilistic and statistical methods in computer graphics.
In addition, in machine learning and statistical learning, a lot of and in-depth statistical knowledge is needed.
Topology
Describing topology in one sentence, it studies why doughnuts and coffee cups are essentially the same. The answer is that they are all just a hole in the surface. For computer graphics, the form of topology (symbolic representation) is a simple method of expressing ideas, often used to analyze the properties of some surfaces, and is applied in shape analysis, shape matching and search.
Riemann geometry
Riemann geometry is the study of calculus and differential geometry on manifold surfaces. Different and three-dimensional Euclidean space, it studies the surface is on the manifold surface, which uses different measurements. This part of the mathematical knowledge is a little abstract, but also effectively used in computer graphics. The theory of conformal geometry has been developed and widely used in computer graphics.
Abstract algebra
Abstract algebra is the study of group theory, ring theory and domain generation mathematics. Relative to linear algebra, content is also more abstract. Also useful in computer graphics.
Computational geometry
Computational geometry studies how to efficiently represent and manipulate geometry using a computer. A typical problem, such as collision detection, is to decompose polygons into triangles to find the point closest to a certain location, which includes algorithms, data structures, and mathematics. Graphic researchers, as long as the involvement in the creation of the body (modeling), it is necessary to use computational geometry.
Recommended Reference books:
Computational Geometry in C
Joseph O ' Rourke
Cambridge University Press
Computational Geometry:an Introduction
Franco Preparata and Michael Shamos
Springer-verlag
Other geometry
Some other geometry, such as "affine geometry", "projective geometry" in computer graphics in some of the problems used more, the project has a greater use of the promotion.
Summary: Mathematical application and Mathematical theory
For graphics, many of the mathematical disciplines mentioned above have one thing in common: we are more inclined to explore the value of their application than the theoretical value of these mathematical theories. Don't be surprised. Many of the problems of computer graphics are closely related to the problems that physicists and engineers have studied, and the mathematical tools used by physicists and engineers are used by computer graphics researchers. Most studies of pure mathematical theory are never used in computer graphics. But it's not absolute. Note These special cases: molecular biology is using nodal theory to study DNA molecular dynamics, and subatomic physics uses abstract group theory. Perhaps one day, pure mathematical theory can also promote the development of computer graphics, who knows.
In fact, some branches of mathematics mentioned in the article, according to our country's education system, in the Department of Mathematics students (or graduate students of science and engineering) are basically able to contact. But the mathematics that the university learns is more emphasis on proving to construct the complete mathematical theory frame, but does not pay much attention to the actual use, now the way that the university teacher teaches is same.
I think the best way to learn maths is to use it, the more you use it, the more useful you think it is, the more interesting it is, the better you learn, the quicker and the more solid you will be. Of course, few people can master all the knowledge, for the study and practice of computer graphics, we should take a broad foundation of mathematics knowledge, and then carry out further study and excavation of relevant mathematical knowledge when needed. Don't be frustrated by the lack of knowledge of your own mathematics, and not so hostile to mathematics, To maintain a strong interest in computer graphics and optimistic attitude towards learning is the key to learning computer graphics.
It is also necessary to point out that in the process of learning computer graphics, you will find that all aspects of mathematical knowledge will be used, so you grasp the mathematical knowledge will be more comprehensive, but also know how to apply in practice. This may be the best embodiment of applied mathematics in all disciplines. On the contrary, some mathematics workers who do pure theory have the knowledge of mathematics that they have studied, and they have not mastered the other mathematical knowledge well enough, they have done more in-depth. Of course, there are admirable places to do applied mathematics and theoretical mathematics, one that focuses on practical applications while the other focuses on theoretical depths, but it is not easy to do well. Mathematics is still to be learned in the final analysis. Relatively speaking, do computer graphics can see the mathematics learned in the actual use, "is used to learn." Imagine that when you can see the wonderful things you do that others see and be admired, your sense of accomplishment must be great.
The last thing to say is that learning computer graphics and computer graphics research, in addition to the mathematical basis, but also the need for strong computer programming skills, you must master and proficiency in a programming language, general recommendation C + +, because you want to achieve your ideas, you have to program to achieve, to make beautiful results. Programming is also very interesting, as long as you are interested, the improvement is very fast. Of course, here I do not elaborate on how to improve the ability and level of programming methods. "Math" and "programming", both hands must be grasped, both hands must be hard. One thing to remind you is that if you're not interested in programming, or you don't want to program, you're not the right choice for computer graphics, and it might be better to choose other directions, such as statistics or theoretical math.
From: http://staff.ustc.edu.cn/~lgliu/resources/cg/math_for_cg_turk_cn.htm