The blogger originally planned to do computer vision, but out of curiosity, he fell into the trap of graphics. In learning graphics, there are some experiences and methods to share with you.
I will update this blog post with a summary of the appropriate sequence of materials.
The preparation stage (generally is just entering the university students) first need to learn programming language, here mainly refers to C/C++, C++ language is the basic programming language of graphics, is absolutely impossible to get around.
The C Programming Language->C Primer Plus ->C ++ Primer
Recommend order reason: the first book is the most concise, examples and explanations are very good, I suggest reading carefully, write each program inside, and then a local to read.
C Primer Plus can be read from zero, but because it’s thick, it’s better to put it at the end of the first book.
C++primer is required to have a programming background. Don’t start with C++primer, as the book’s introduction says, assuming that readers have a programming background. C++ primer is recommended to make an outline, catalogue the content you have read, and review it frequently, otherwise you may not know what you have learned after learning it, or even stop learning it halfway through.
Mathematical knowledge required: Advanced mathematics, Linear algebra, probability theory, complex functions.
However, it is strongly recommended to devote one or two hours a day to studying mathematics in scientific research and study: Advanced algebra, mathematical physics method, signals and systems, stochastic process, discrete mathematics, mathematical analysis and numerical analysis subjects is essential the mathematical basis of graphics, if take out one or two hours a day to learn those things, targeted purpose to learn, often do practice the point, in less than two years, You really become someone who can use math to solve problems.
Mathematical ability and programming ability are the only criteria that distinguish the best from the average.
In the beginning stage (which can be learned together with the preparation stage), it is recommended to learn the rendering technology dominated by raster technology first, because after all, the game field is still dominated by raster technology, and raster learning will have a lot of benefits for the understanding of GPU pipeline and so on. You can start with ray tracing, but it’s not that far off.
There are a lot of big guys say it’s best to start with their own raster engine, this is a matter of opinion, my personal idea is to first learn the mainstream graphics programming methods, and then do it yourself.
Before learning, you can look at yan Lingqi’s introduction to computer graphics on B station, and have a preliminary understanding:
space.bilibili.com/512313464
Graphics three directions: simulation, rendering, modeling can be simply understood. To be honest, WHEN others mentioned this relatively new course at the beginning, I personally looked at it with colored glasses. I did not believe that graphics could be taught by video. But I have to say that the content is really good, it’s good for beginners to learn and understand, but don’t expect to watch a video to learn all the theoretical formulas, just know what’s in graphics.
Learning OpenGL -> RayTracing in One Weekend
Each should be studied from start to finish at least twice before moving on to the next level.
Then follow this tutorial: Home · ssloy/ TinyRenderer Wiki (github.com)
This tutorial has two parts to learn, one is ray tracker, and the other is raster. Learn the basics, as well as co-ordinate and optimize the code implemented in the raytracing trilogy books above
In the meantime, learn CUDA programming methods:
CUDA by Example.An Introduction to General-purpose GPU Programming. Then you can buy The CUDA Handbook. But comprehensive) is used as a reference manual.
There are a lot of books to read at this stage, so make sure you’ve really learned the Learning OpenGL and Light Chase Trilogy before you get into this stage. Then, there’s the Bible.
Into god necessary books, as far as possible all read, the key is practice, must be their own programming operation. Read chapters one, two, three, four, and then the rest of the book as you optimize your engine or learn where you need to go.
When it comes to graphics, offline and live rendering don’t have to be completely separate; they work best together.
The realistic – image – short – using photon – mapping”
Spherical Harmonic Lighting:The Gritty Details
Robust Monte Carlo Methods for Light Transport Simulation
Real-time Rendering 4th Edition
Advanced Global Illumination
These books can be read and experimented from beginning to end (believe me, you can hardly do graphics without doing your own experiments) or read according to your interests. Robust Monte Carlo Methods for Light Transport Simulation is an earlier paper. But it’s a classic, the best PhD thesis.
A series of PBRT books I have written from zero to total is now completed and posted on our website: Dezeming. Top /? Page_id = 50… Teach readers step by step to start from scratch, not only master the source code, but also build a PBRT engine. I’m also working on a sequel to this series, PBRT: Professional Knowledge Theory and Code Practice, to explain the principles involved.
Fundamentals of Computer Graphics Steve-Marschner
It’s time to go back and brush up on the basics. This book is not recommended to read from cover to cover. It can be a bit boring, so just double it up when you don’t have a problem and read it carefully when you need it.
Professional Stage: GPU Germs
The RayTracing Gems
Various papers…
At this time, don’t study from beginning to end, just study what you are studying.
All kinds of papers are focused on learning according to their own direction, find several literature reviews, read the papers one by one, based on their own direction, for example, the blogger himself is the medical image body rendering direction, mainly a variety of body rendering algorithms and optimization algorithms, as well as advanced global lighting technology.