Computer Graphics learning methods and related books, games, GIS, VR, and 3D engines can all be viewed.

Source: Internet
Author: User
Tags pixel coloring
This book referred to the <graphics literacy>, the original content of the Introduction: http://www.cppblog.com/lai3d/archive/2008/12/30/70796.html

Preface:
Based on my current level, I learned three major credits for 3D graphics:
A. Space ry mathematics: Space ry transformation, acceleration algorithm, Polygon technology, curves and surfaces, intersection testing, and collision testing.
B. Illumination coloring system: illumination, texture, advanced pixel coloring, and artistic rendering.
C. Technical Application of the program: announcement board, Genie, sky box, volume rendering, material system, scene graph, rendering queue.

In the actual learning process, the three parts are mutually restricted, so they cannot be intruded unilaterally. A balanced development should be maintained so that mutual promotion and understanding can be deepened to achieve a smoother learning curve. the relative importance is reduced in the descending order of A, B, and C (the time will ruthlessly eliminate the existing technical application of the Program), and a deep understanding of the basis of graphics is king. After the three parts are relatively small, you can quickly read all the miscellaneous documents on the Internet, analyze and understand the basic knowledge, and master various procedural skills in a short time. Let's look at the global basis again and view all the details for a deeper understanding.


Part 1: How to Learn API (OpenGL/direct3d)
First of all, I think that API is a tool, not an essential tool. OpenGL/direct3d is essentially a graphics, rather than OpenGL/direct3d. APIs are just interfaces. if you understand the principles of graphics. then you can easily define the functions of these interfaces and why they exist. so the first thing I want to talk about is: you need to learn 3D programming, instead of learning OpenGL/direct3d. Even these APIs are not that important (although so, many may not agree ). the most important and fundamental thing is that you need to understand the graphics behind these APIs, because that is the fundamental foundation.

Next I will introduce my views on API learning. I think there are two ways to learn API: positive learning and reverse learning.
I. positive learning. The so-called positive learning is to learn the API itself. I think this method is a brute force action. not very good. let's just look at the features of the API. you can. For example, when learning direct3d, we need to know how to initialize it and how it works with the operating system. it introduces VS/PS in direct3d8. the last step is to create a direct3d application. this is enough. Otherwise, there will be so many functions in direct3d, with dozens of parameters. Every one would have killed me. the second role of positive learning is to take a look at the details of the API when you are familiar with graphics and probably understand the API, then, let's take a look at the functions provided by the API for your program. for example, two side stencel in direct3d. texturecombine in OpenGL.
Ii. Reverse learning. This is the fundamental method. At this step, you can actually get started with graphics. This requires you to have a certain degree of graphics basics. for example, you are now starting a demo. you expect a bunch of dazzling effects in your demo. Of course, you also need to understand how these effects are achieved. then you can find the corresponding functions in the API. I think if your idea is normal, general functions should be available in direct3d/OpenGL. of course, you will also encounter features you want that are not available in these APIs, but this is not important. What is important is that you have learned new things-this feature does not support ^_^ in XX APIs.
I usually adopt the method of forward learning, reverse learning, and positive learning. I hope the above suggestions will help beginners.


Part 2: learning computer graphics
Note: 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. This article is the author's experience in learning computer graphics. If you have different opinions, please do not attack or abuse them. The appropriate questions in this article should be: what about computer graphics?
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 books and materials in English as much as possible. Mathematics and mathematics in computer graphics are used more often ,, we can list some common examples: Advanced Mathematics, numerical analysis, differential ry, topology, probability, interpolation theory, (partial) differential equations; physical, if you want to perform physical-based modeling, some physical theories need to be learned: mechanics (kinematics, dynamics, fluid mechanics ...), Optical, 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 graphics objects, in addition to common linked lists, trees, and other data structures, graphics also have their own special data structures. Other categories: Sometimes you need the knowledge of other disciplines. Learn as needed.

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.


Part 3: Computer Graphics books
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:

Recommended bibliography 1: Computer Graphics entry-level teaching materials:
1): OpenGL programming guide: the official guide to learning OpenGL, version 1.4, Fourth Edition
2): OpenGL superbible (3rd edition)

Recommended bibliography 2: data structures and algorithms in computer graphics:
1): Joseph o'rourke's computational geometry in C

Recommended Bibliography 3: Computer Graphics modeling books:
1): Gerald farin's curves and surfaces for CAGD: A Practical Guide (this book is a classic book of CAGD (Computer Aided Geometric Design)
2): Les A. piegl, Wayne tiler's the (the book contains the pseudo-code of the program for the curve and surface of the curve, which is easy to be changed to C, the book is popular)
3): curve and surface mathematics)
4): Introduction to Implicit Surfaces (implicit surface)
5): Joe Warren's subdivision methods for geometric design: a constructive approach (Subdivision Surface)
6): level of detail for 3D graphics compiled by David luebke (level details)

Recommended bibliography 4: Computer Graphics Rendering books:
1): An Introduction to Ray Tracing of Andrew Glassner)
2): R. Keith Morley, Peter Shirley's realistic ray tracing, Second Edition
3): radiosity and Global Illumination (radiation level) of Francois X. sillion)
4): Philip dutre's new book, Advanced Global Illumination
5): radiosity of Ian Ashdown: a programmer's perspective
6): Henrik wann Jens' realistic image synthesis using photon mapping
7): Bruce Gooch, Amy Ashurst Gooch's non-photorealistic rendering (non-authentic graphics)
8): volume graphics compiled by Min Chen (body graphics)
9) texturing & Modeling by David Ebert and others: a procedural approach, Third Edition
10) F. Kenton Musgrave fractal mania)
11) Evan pipho focus on 3D models (common model formats for graphics)
12) focus on 3D terrain programming of Trent Polack)
13) cloth modeling and animation of Donald H. House)
14) Real-time 3D Character Animation of Nik lever with Visual C ++ (about role animation)
15) Richard parent's computer animation: algorithms and techniques (animation of course)
16) david h. Eberly's 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics
17) Alan H. Watt, 3D computer graphics (3rd edition)
18) 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.

Part 4:
Where can I download the materials? My csdn resources are available. I will upload them one after another. You can also search for them online.

Computer Graphics learning methods and related books, games, GIS, VR, and 3D engines can all be viewed.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.