Home

Awesome

Awesome Computer Graphics Awesome

<img src="https://raw.githubusercontent.com/lhns/awesome-computer-graphics/master/media/rtow.jpg" align="center" width="1000">

The Awesome CG List! A collection of various resources to learn computer graphics, including books, tutorials, online courses, and more. Name a CG topic, chances are this list contains some stuff about it (if not, it will someday!).

If you want to contribute, please read the Contribution Guidelines

Contents

What is computer graphics?

Computer graphics is a knowledge area about how to create images using computers, to put it simply. Generally this is done by processing data representing information what you want to draw, for example: objects, colors, light. Anything about visual and digital creations have used CG in some way: games, movies, etc.

How to get started?

Before showing a lot of books, videos, and materials, first you need to know what is bare-minimum to begin with computer graphics. It boils down to two main topics: programming and math. About programming, learn the basics, it's recommended to learn C/C++ as they are used frequently in this area. Concerning math, learn linear algebra and geometry, there are books in this list focused on math fundamentals for CG, pick one and work on it.

I want to learn more advanced stuff

Assuming you know programming and math, then you can get more practical. It's a good approach to get a project about a topic like global illumination, or GPU programming to deepen your knowledge on this area. Examples of projects are: path tracers, photon mapping, shader programming. Recommended projects are the PBRT, the ray tracer from the Physically Based Rendering book, and the ray tracer with photon mapping, from the Realistic Image Synthesis Using Photon Mapping. Also, watching tutorials for Shader Toy and experimenting on it is a good idea.

Books

Tools

Courses

Sites

Projects/Repositories

Miscellaneous

License

CC0

To the extent possible under law, Luís Santos has waived all copyright and related or neighboring rights to this work.