Standard Process:
1. c ++ primer English version (fourth or fifth edition)
It is necessary to finish all the exercises. Rendering program design is complex, and all the features of C ++ will be used later. C ++ is easier to learn later.
Depending on the English version, the computer has just a few words. After the basics are completed, it is also convenient to check the stack overflow websites.
2. Introduction to 3D game programming with DirectX 11
This is also the classic longshu. Getting started with rendering. It introduces many basic rendering algorithms and completes the exercises.
3. Practical rendering and computation with direct3d 11
Describe the architecture and API of d3d11 in detail. A good reference book can be used with longshu.
4. Use eigen for the math Database, which is easy to use.
If you simply want to learn DirectX, the above three items are sufficient. It takes about one year to study hard, almost half a year for C ++ and half a year for d3d.
Exercise is the most important thing.
Just like playing games.
If you want to design a rendering engine, the real battle is just getting started... ###################################
GPU programming NVIDIA
CG tutorial real-time graphics authoritative guide ################################## # compared with playing games, writing games requires thousands of times of complexity. In addition to mastering general programming skills, there must also be a considerable number of graphics, physics, and mathematical basics, especially in China. Due to the lack of relevant information, it also makes beginners unable to start. The following summarizes some entry-level methods and documents that are easier to start.
First, you must be proficient in a high-level language, such as C ++ or C #. Second, you must have good English reading skills. For game developers, English reading ability is one of the most important and basic tools, because most of the resources you encounter will be in English. Do not always wait for others to translate for you. Try to read the English documents and you will find that it is not that difficult :)
At the beginning, you have to select a graphic API, usually between DirectX and OpenGL. If cross-platform is considered, OGL is the first choice. If it is only on the MS Platform, dx is the first choice. I don't know much about OGL, so the big department information below is related to DX. Of course, as one of the preparations, you must first download the latest DirectX SDK from the DirectX develop center.
Introductory books are very important. We recommend <Introduction to 3D game programming with DirectX 9.0> (as if a Chinese version was published last year), which is also the legendary Dragon book, this can be said to be the best DX entry-level teaching material. Frank Luna discussed all aspects of DX from the beginning to the end. In addition, coupled with <DirectX 9 graphics the definitive guide to direct3d>, although the title is definitive, it is actually a basic entry-level book. After reading these two books, you are basically familiar with DirectX. The same is true if you want to learn xNa. After all, xNa is based on DX.
Update (2010.11.6): the second version of <Introduction to 3D game programming with DirectX 9.0>, XXX, a shader approach, can also be found.
Don't read graphics books from the very beginning. At this time, you don't have a basic understanding of Graphic programming, so you can see it in the dark. Do not use online tutorials or forum questions as the primary learning path. Find a good book and study it systematically, with the highest efficiency. Do not immediately look at the examples in the SDK. The basic principles of many graphics are not clear only by reading code. For some books that have been too old, it is best to * not * read them, for example, <windows game programming master skills> <3D game programming master skills>. Some people say that the basic idea remains unchanged. Unfortunately, for modern GPUs, many early technologies and optimization techniques have long expired. Graphics programming is a very fast developing technology. Let's look at the speed of GPU development ~ Two years is the innovation of a generation of products.
Well, after getting started, it is the stage for you to consolidate and expand your horizons. Now it is more appropriate to look at computer graphics. Vomit blood recommendation <Real-Time-rendering>, this book is a must-read book and reference manual for all graphic programmers. Recently, the third edition (Updated: An electronic version is available ). Unfortunately, there is only the second version in China, which is a little old. If you cannot find the third version, it is worth reading. All other books in China named after graphics have one thing in common: Boring and outdated. You only need to look at the two-dimensional 3D transformation and curve and surface representation. If you find that you did not learn mathematics well in the past, three mathematical books are tailored to game programmers: <3D math primer for graphics and game development>, <mathematics for 3D game programming and computer graphics> and <essential mathematics guide 2nd Edition>. The first book contains a Chinese version, and the last one is a new book generated in the past 08 years.
Update (2010.11.6) after reading the above introductory books, you should take some time to fully read the DirectX documentation and some samples, to deepen your understanding of the entire DX system and functions. You will find that 60% of the problems in common forums are mentioned in the document.
In fact, there is no fixed learning route after getting started. It is best to learn it based on the direction you are interested in.
Shader:
Cg_tutorial and the complete effect and HLSL guide are both good entry materials, and of course there are SDK documents. <Shaders for game programmers and artists> there are a large number of entry-level examples. <Advanced lighting and materials with shaders> describes various illumination models and techniques. <GPU gems> 1 ~ 3 must be read. Although there are 2 or 2 Chinese versions, some translations are not ideal. It is strongly recommended that you directly read the English version. The shaderx series is also a classic series. It is published every year and contains the latest real-time rendering technology. Now it has 6th million books. However, only 1 ~ can be found on the network ~ 3. Most shader in volume 1 and 2 are written Using ASM, but it is not difficult to convert to HLSL by understanding the principle. In addition, nvidia sdk and ati sdk are also important resources for learning shader. Finally, <programming vertex, geometry, and pixel shaders>
Update (2010.4.30): shaderx has published 7th copies. The subsequent versions will be renamed GPU Pro: Advanced Rendering Techniques for copyright reasons and will still be published each year.
Update (2010.11.6): the wisdom of the people of tianchao is infinite. Many new graphics books can be printed on paper in Taobao, including shaderx systems ..... Update (2014.6.24): shader series: shader1 ~ 7 + GPU pro1 ~ 5 GPU gems: GPU gems 1 ~ 3
Update (2010.11.6): For shaderx and GPU gems, some people often ask me about the old ones which are worth reading. What else can I do without reading them. Here is my personal opinion for reference only: shaderx and GPU gems are both cutting-edge technologies, although there is no continuity between each book, however, many technologies are built on previous methods. If you have time, we recommend that you start from the first book. Both books belong to the proceedings, and there is not much continuity between chapters, so you don't have to see the last page from the first page, just select the part you are interested in. For example, if you are interested in shadow, you can simply look at the shadow-related chapters. You can see the development, changes, and value of the entire Shadow technology over the past 10 years. In addition, there are many cutting-edge and experimental technologies in the book. Due to hardware restrictions, it usually takes two or three years for them to become popular. Now it is not too "outdated" to read the previous several books ". Finally, this book covers graphic methods, such as 2D, 3D, image processing, AI, game architecture, and gpgpu. It has a wide range, in particular, GPU gems is more focused on academic research than shaderx, and many technologies may not be applied to products in the end. It is also a normal phenomenon that some chapters cannot be understood.
Terrain:
<Real time 3D terrain engines using C ++ and DX9> a comprehensive discussion of various technologies related to terrain rendering should at least take ~ Go through chapter 9. Then you can go to virtual terrain to view the latest terrain rendering technology.
Update (2010.11.6): You often try to use the PIX to analyze games on your computer. Terrain Rendering is usually the easiest part to analyze, and you can immediately learn about the popular terrain rendering methods.
Model import and Animation:
<Advanced animation with DirectX> only one copy is sufficient.
Update (2010.5.5): <character animation with direct3d> you can easily find the latest game animation technology, the author is a developer of Alan wake, a masterpiece of xbox360, and can replace the one mentioned above.
Physical:
Both <game physics> and <game physics engine development> are good. <Real-time collision detection> is the best book in collision detection. : <3D game engine design, 2nd> Chapter 8 is worth reading.
Levels:
<Level of detail for 3D graphics>
Ray Tracing:
<Physical-based rendering-from theory to implementation>
Update (2010.4.30): a free getting started tutorial another introduction to Ray Tracing
Update (2010.11.6): This book is now in version 2 and has been sold on a website.
Engine Design:
To be honest, there are no really good books in this regard. The more core the content is, the fewer people are willing to write it. <3D Game Engine Architecture Engineering real-time applications with wild magic> only chapter 3 is worth reading. <3D Game Engine programming> You can select a part of the chapters you are interested in, but in general, it is a little bit simple.
Update: <3D game engine design, Second Edition> The photocopied version is released. This book is a new version of <3D Game Engine Architecture Engineering>, which is strongly recommended.
Recently we found that <pro ogre 3D programming> is also very good, with more than 200 pages, but it allows readers to quickly understand the design and architecture of an existing engine.
Update (2010.7.15): The new game engine architecture is very good. Note that it is the version of Jason Gregory. If you only recommend an engine book, it is definitely the book. It is said that an electronic version of the scan has been used.
Update (2010.6.28): <game engine gems> is a new series of books about engine design. Similar to shaderx, it is also a book of every year. It has published its first book and an electronic version.
AI & game programming
<Programming game AI by example> very good, it seems that there is a Chinese version, alternative <artificial intelligence for games> (the second version already exists ). Of course, the <AI programming wisdom> series is also a must-read file, but currently only 1 ~ 2.
Update (2010.5.28): <AI game engine programming> it is easy to find. Although it is a well-known book, it does not fully introduce a "One for all" engine, there is no specific algorithm discussion, but I have made a detailed introduction to the AI Design of various types of games. I can choose to read it as a reference guide book.
Network: Mai % 25 ##& %... (My network idiot + _ + ........)
Overall:
<Game programming gems> series. However, due to the wide range of content, the quality of the article is uneven, so you can choose to read it. Paper of major conferences such as GDC, gamefest, and Siggraph over the years should also be concerned. As for those "all in one" or those books that you write an FPS game for N days, you should not read them. The common problem of such books is that they are all said, and the results are not clear.
In addition to books, we recommend some good network resources:
Http://www.gamedev.net/in addition to a large number of tutorials, the Forum's accumulated content for many years Paul Vientiane. Make good use of Forum search and you will find that no matter how powerful you are, there are always people who are better than you who have encountered the same problems as you long ago and have provided solutions.
NVIDIA and ATI developer centers
Creators.xna.com xNa Official Website
Http://www.gamasutra.com/similar to gamedev
Http://www.beyond3d.com/here in addition to the discussion of software, you can also see the analysis of the hardware architecture
Http://www.gameres.com/the only professional game programming site in China, but unfortunately compared with gamedev it seems too cold -_-#
Of course, don't forget to collect blogs from various forums :)
Finally, reading is not enough. It is king to write more and practice more.
PS: The above books can be started through the Internet or bookstore, except for those mentioned in particular. Don't ask me for an e-book. I can find it. I believe you can also find it. If you cannot find it, I certainly don't have it.