**0) Preface**

The following list is primarily intended as a study guide for graduate students (masters or PhD) who intend to do research in the area of computer graphics. Computer graphics has involved into a fairly mature field so that a decent foundation is required before good research can be done. The list gives several books that I would recommend to read. There are many different types of books and it is sometimes difficult to pick the right one. Personally, I prefer to start reading books that are less formal, more redundant and give a good intuitive understanding of a topic. These type of books might be criticized for being too easy and not rigorous enough. However, if your background is computer science, it might be hard to understand advanced mathematical texts at the beginning. I believe it is much more efficient to read the simple introduction first. Then, after you have a good initial understanding, you might get bored with introductory books and favor books that are concise, in depth and include a rigorous and complete treatment of a topic. Additionally, it is important to consider that even the simple books require a decent mathematical foundation.

Constructive comments and feedback is appreciated. Peter Wonka - May 2006.

**1) Computer Graphics Text Books**

**1.1****) Basic Text Books**

There are several interesting text books that can be used as introduction to Computer Graphics. These books cover the topics of an introductory undergraduate class in computer graphics:

- Hearn, Baker. Computer Graphics with OpenGL.

The book has many nice illustrations, but is fairly long and not very concise. I currently use this book for the undergraduate class in computer graphics. - Shirley. Fundamentals of Computer Graphics.

This book is more concise and formal and covers more advanced topics.

**1.2) OpenGL**

Most computer graphics programs in research use OpenGL. OpenGL is also typically covered in the first introductory undergraduate class:

- OpenGL Architecture Review Board, Dave Shreiner, Mason Woo,
Jackie Neider, Tom Davis.

OpenGL(R) Programming Guide : The Official Guide to Learning OpenGL(R), Version 2 (5th Edition) (Paperback)

**1.3) Real-time rendering**

The main book in this area is

- Tomas Moeller, Eric Haines. Real-Time Rendering (2nd Edition)

The book is very ambitious and covers many topics in the area of real-time rendering and also related topics from other areas. I think this book is one of the best books to read after reading an introduction to Computer Graphics. The disadvantage is the fact that several topics are not described in sufficient detail to be understandable from the book. However, the book does a very good job to reference important research papers in most areas for further study Other interesting books in real-time rendering are the GPU GEMS. These books are collected articles about various topics that use graphics hardware. The advantage is that articles are easier to read than average research papers and the articles often include source code for vertex shader and pixel shader.

- GPU Gems 2 : Programming Techniques for High-Performance Graphics
and General-Purpose Computation (Gpu Gems)

Matt Pharr, Randima Fernando; - GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time
Graphics

Randima Fernando

**1.4) Physically-based rendering**

I use the following two texts for the graduate graphics class:

- Pharr and Humphreys. Physically-based Rendering.

This book is a good introduction to global illumination, focusing on ray tracing. The book includes source code and includes many detailed explanations. I think it is a great introduction to global illumination and ray tracing, because it is detailed enough to convey advanced concepts, but still easy to read. - Dutre, Bekaert, Bala. Advanced Global Illumination.

This book is more concise, shorter and it seems to be more complete. It is definitely harder to read as an introduction, because it includes a many formulas.

**2) Mathematics**

To sell research ideas and to be precise in the description of what you are doing, it is important to read a lot of math. Starting with a good foundation in calculus and linear algebra you can then proceed to more advanced topics. Again, this list focuses on books that are understandable by computer science graduate students with decent mathematics background.

**2.1) Calculus**

- James Steward. Calculus.

This basic book is not extremely formal. Most of this information is typically covered in undergraduate classes.

**2.1.1) Vector Calculus**

- Schey. Div, Grad, Curl, and All That: An Informal Text on Vector
Calculus

This is a great little book that gives a good overview. The book can be read really quickly.

**2.2) Linear Algebra**

- Farin and Hansford. Practical Linear Algebra: A Geometry Toolbox

This book is a great introduction to Linear Algebra. It uses geometric intuition and interpretations rather than formal proofs.

- Gilbert Strang. Linear Algebra and Its Application.

This is one of my favorite books. I would recommend it to any PhD student in computer graphics. Most likely it contains information you did not learn as an undergraduate student.

- Matrix Methods in Data Mining and Pattern Recognition by Lars
Eldén

This book is very concise and includes a lot of helpful information. I recommend reading this book after Gilbert Strang.

**3.4) Signal Processing**

- Bracewell. The Fourier Transform and Its Application.

This text focuses on the continuous Fourier transform. I really like this book, because it includes many images and explains the Fourier transform without too many simplifications. I found that most computer graphics books do not present the Fourier transform in sufficient depth. This is understandable due to space constraints, but the Fourier transform is essential for several topics in computer graphics, most importantly aliasing and anti-aliasing. I would recommend that text to all PhD students in computer graphics. Read at least the first eight chapters.

**3.3) Wavelets**

- Jensen and la Cour Harbo. Ripples in Mathematics.

This book is a very simple introduction to the topic. The first 70 pages give an excellent intuitive understanding of wavelets using simple examples and almost no formalism. It is possible to gain a lot of intuitive insight into the topic and spend only an afternoon.

**3.5) Differential Geometry**

- O'Neill. Elementary Differential Geometry.

If you work with curves, and surfaces, this book is a good introduction. Discrete computations on triangle meshes are not really covered, so this book is only the basis. - Do Carmo. Differential Geometry of Curves and Surfaces.

This book is more formal and complete.

**3.6) Other Topics**

There are many other topics of interest, such as statistics, optimization, monte-carlo statistical methods, curves and surfaces, and calculus of variations. Book recommendations in these areas are future work.

**3) Related Areas**

**3.1) Computational Geometry**

Computational Geometry covers topics such as spatial data structures (quadtrees, kd-trees, bsp-trees, ...) and geometric algorithms such as triangulation that are often used in computer graphics. I would recommend the book

- Computational Geometry

Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopf

**3.2) Image Processing**

- Digital Image Processing (2nd Edition)

Rafael C. Gonzalez, Richard E. Woods.

This book is fairly easy to read and covers most basic topics in image processing.

**3.3****) Computer Vision**

Computer vision and computer graphics share many interesting problems and in the recent past conference papers included components from computer vision and computer graphics. I would recommend the book:

- Computer Vision

Linda G. Shapiro, George C. Stockman, George Stockman, Linda G Shapiro