Computer Graphics Learning
From: chinapub note:
- This article is the author's experience in learning computer graphics. It does not represent the point of view on this site, but many things are worth reference;
- This article tries to avoid theoretical descriptions and try to introduce the learning of computer graphics in the most popular language, as well as some bibliography and network resources;
- This article does not involve the definition of concepts, so as not to fall into academic discussions.
The right question in this article should be: What about computer graphics?
1. Introduction
What is computer graphics? This article tries to avoid strictly defining it. However, computer graphics is usually the inverse process of digital image processing. This is just an inaccurate definition. We will see that, in fact, the differences between computer graphics, digital image processing, and computer vision are not very clear in many places. Many concepts are the same. Computer Graphics is a subject that uses computers to draw things. digital image processing is a subject that uses computers to process externally obtained images. In France, graphics and images are a course. How to learn computer graphics? In addition to the basic knowledge of computer graphics, you also need the following knowledge. The more you know, the better you do.
- You must learn English well. If you want to learn computer graphics, read English books and materials as much as possible.
- Mathematics and computer graphics are widely used in mathematics. We can list some common ones: Advanced Mathematics, numerical analysis, differential ry, topology, probability, interpolation theory, (partial) differential equations...
- Physics: If you want to perform physical-based modeling, some physical theories need to be learned: mechanics (kinematics, dynamics, fluid mechanics ...), Optics, finite element...
- Programming Language: C or C ++ is the most common 'mandarin 'in computer graphics ',
- Data Structure: You need a Data Structure to describe your graphic objects. In addition to common data structures such as linked lists and trees, graphics also have their own special data structures.
- Other categories: Sometimes you need the knowledge of other disciplines. Learn from your needs.
What you listed above is not something you must learn, but something that may be used in computer graphics. Remember not to expect to learn computer graphics through a textbook, it is much more complicated than you think. 2. Graphics Problems
Each subject has its own subject's specific problems. What graphics should solve is how to draw a picture and get the desired results. Of course, this is the biggest problem in graphics. When you start learning computer graphics, find a simple book and have a rough understanding of computer graphics. Then you can start your graphics Journey:
OpenGL programming guide: the official guide to learning OpenGL, version 1.4, Fourth Edition
OpenGL superbible (3rd edition)
It is a relatively good entry-level teaching material for learning computer graphics. In practice, I went to learn it from the very beginning.
Foley's
Computer Graphics: Principles and Practice, second edition in C
It's not a good idea. It's confusing to read. The results of a book that tells everything are often not clear.
After you have mastered the basic content of OpenGL, you will have a rough understanding of graphics.
Next, you can learn the data structures and algorithms of computer graphics. the following books are suitable
Joseph o'rourke's computational geometry in C. The book contains the C source code, which is simple and clear, and is suitable for programmers to learn.
In general, computer graphics involves two major parts: Modeling and rendering.
2.1 Modeling
If you want to draw a thing, you must first have its geometric model. Where can this geometric model come from? The following books are good:
Gerald farin's curves and surfaces for CAGD: A Practical Guide
This book is a little difficult.
This book is a classic book of CAGD (Computer-Aided Geometric Design), a full picture of CAGD, and two books about curved surfaces: The Book of beiser and
Les A. piegl, the OpenGL book of Wayne tieller
The book contains the pseudocode of the program of the curve and surface of the form of the curve, which is easy to change to C. The book is easy to understand, but you have to be patient to read it :)
Mathematics of curves and surfaces
This book is a Chinese translation version written by French people. It also contains the sequence J written by bezie himself. The translation is very good. After reading this book, you can master the bezeiser surface technology.
There are other styling technologies, such:
Shape of the implicit surface:
It is to shape the surface with f (x, y, z) = 0 in the form of a function. Such a styling technique is suitable for describing the meat-like things of animal organs. We recommend you to read two books.
The introduction to Implicit Surfaces edited by Jules bloomenthal is a monograph on Implicit surface modeling, polygonization, and rendering.
Luiz Velho's implicit objects computer graphics is also a monograph about some updates.
Subdivision Surface Modeling
Surface stitching is a complex issue when you use a place where you can create a shape using a place where a split or fold may occur during animation. Subdivision Surface is used to solve this problem.
Joe Warren's subdivision methods for geometric design: a constructive approach is a monograph in this regard
The current technology can use a 3D Scanner to obtain the points on the surface of an object. Based on these points, the surface of the object is calculated as reconstruction ), because these technologies are described in the article, we omit the description of them.
After your geometric model has been completed, you need to solve some problems with this model to get a suitable model. When there are many patches or the model is very complicated, you need to simplify the geometric model to meet the needs of real-time rendering. This technology is called level details ). The following book is about this:
Level of detail for 3D graphics compiled by David luebke
2.2 Rendering
With the model, how can we draw this geometric model? This step is rendering.
If you read the OpenGL book above, you will know some rendering knowledge, but don't be happy too early. OpenGL uses the local illumination model ), don't be scared by this word.
The local illumination model only considers the interaction between the light source and the object, and does not consider the impact between the object and the object. Therefore, OpenGL does not support shadow, one (half) effects of transparent objects .., the effects between objects must be considered before implementation.
In addition, OpenGL can implement shadow-start
OpenGL itself is not supported, but it can be implemented through some Methods :), search by Google
Shadow volume. OpenGL will find the answer.
The Global Illumination Model and other models are all considered. Currently, there are three categories of Global illumination technologies. The specific technologies are not introduced here. If you want to know more, contact me to discuss them:
Ray Tracing)
There are two good books about Ray Tracing:
Andrew Glassner's an introduction to Ray Tracing
Glasser is a celebrity in the graphic industry. This book is also a classic of ray tracing.
R. Keith Morley, Peter Shirley's realistic ray tracing, Second Edition
The first version of this book is pseudocode, and the second version is C code. Its structure is not very clear.
Radiosity)
There are four good books about radiosity:
Michael Cohen's radiosity and realistic image synthesis, Cohen received Siggraph 1998 computer graphics Achievement Award, he turned radiosity into practical available, now Cohen in MSR graphics http://research.microsoft.com /~ Cohen/cohensmallbw2.jpg
Francois X. sillion's radiosity and Global Illumination. sillion is a French. His main research direction is radiosity, which is well written and very clear.
Philip dutre's new book, advanced global illumination, looks pretty good. I just got it and haven't seen it yet. Well, it's hard to evaluate it.
Radiosity of Ian Ashdown: a programmer's perspective
Books with source code !! In this case, you have to give 5 *****
Photon mapping
I don't know how to translate this. This technology has appeared quite late. It's a good book!
Henrik wann Jens' realistic image synthesis using photon mapping
Henrik wann Jenney is the inventor of photon mapping technology. 2.3 are those graphics? The differences between images and images are blurred :(
Apart from the 'classic 'computer graphics mentioned above, are there some other things below? Are they also called computer graphics? Yes!
2.3.1 non-authenticity graphics (non-photorealistic graphics) authenticity is not the only requirement of computer graphics. For example, what should I do if I want to use a computer to draw a cartoon image? Or: How to spell out the image in text ?, To solve these problems, we need to use non-authentic graphics. Continue to recommend good books!
Bruce Gooch, Amy Ashurst Gooch's non-Photorealistic Rendering
2.3.2 if volume graphics uses a CT machine to perform many slices (such as the skull), can the 3D skull be obtained through these slices? Volume graphics solves this problem.
Volume graphics compiled by Min Chen
The above two graphics technologies have no obvious boundaries with the image. In fact, they are a combination of graphic images.
3. Are there other books?
There are also some good books. Haha, the good books can't be completed :), continue to deliver:
Graphics gems I ~ V. a book written by a group of children, including researchers, programmers...
Various data structures and programming skills with computer graphics
Real-time rendering (2nd edition) compiled by Tomas akenine-Moller and others)
Many of the latest developments in computer graphics
Texturing & Modeling by David Ebert and others: a procedural approach, Third Edition
Describes how to use a program to implement graphics elements such as textures, mountains, and terrain.
F. Kenton Musgrave fractal mania)
Ken Perlin is the inventor of Perlin Noise. People who have used 3D software are no stranger to Perlin Noise.
There are specific topic books for specific graphics objects,
Evan pipho focus on 3D models, which describes common model formats in graphics.
Focus on 3D terrain programming of Trent Polack, about terrain
About cloth modeling and animation of Donald H. House
Real-time 3D Character Animation of Nik lever with Visual C ++, about role Animation
......
And :)
Richard parent's computer animation: algorithms and techniques, of course, is about animation.
David H. Eberly's 3D Game Engine Design: A Practical Approach to real-time computer graphics, with code! Haha :)
Finally, let's take a look at the following books when there's nothing to do.
Alan H. Watt, 3D computer graphics (3rd edition)
Computer Graphics of James D. Foley and others: Principles and Practice in C (2nd edition). Let's take a look at this Bible when it's okay.
Tired: (No, the above book is almost done, and there are some shader books. I don't know. I will make up later :)
4. Where can I find these books? What resources are there?
I promise you can buy all the books above at www.amazon.com: Don't hit me.
Well, most of the books can be copied to the National Library. The brothers in Beijing are blessed. The books borrowed three years ago are copied at one corner/page, but the new books should be copied in the library early ~ 6 Corners/Page, still cheaper than Amazon, haha.
If you can't, you can buy them abroad. Buy them together and you can afford them.
I don't know about DirectX, so I didn't know about DirectX :)