Graphics are an important means of conveying information about data. Most data graphics are viewed on a computer, which makes the field of computer graphics an important underlying component of data science. Of course, most data scientists don't really need deep knowledge of computer graphics, especially 3-d animations, in order to do their job. However, those with a particular interest in data visualization may want to dig in (we did)! Plus, computer graphics is a very interesting subject in its own right.
Recommended Books
Computer Graphics: Principles and Practice
John F. Hughes, Andries Van Dam, Morgan Mcguire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley
Key Features
- In-text exercises
- Errata etc.
Key Topics
- 2D Graphics
- 3D Graphics
- Bezier Curves
- Camera Specifications
- Color
- Computing Solutions to the Rendering Equation
- Convolution
- Enlarging and Shrinking Images
- Expressive Rendering
- Fourier Transform
- Functions on Meshes
- Geometry
- Human Visual Perception
- Images and Signal Processing
- Interaction Techniques
- Light
- Light Transport
- Lighting
- Luminaire Models
- Meshes
- Modern Graphics Hardware
- Motion
- Probability
- Rasterization
- Ray Casting
- Ray Optics
- Reflectance
- Rendering in Practice
- Scattering
- Shaders
- Shading
- Smoothing
- Spatial Data Structures
- Splines
- Standard Approximations
- Textures
- Transformations
- Translucency
- Visibility Determination
- Volumetric Models
Description
This is the canonical book on computer graphics. It is enormous. It is so enormous, in fact, that it requires both a table of contents and an abbreviated table of contents in case you're in a hurry. Much of the book is taken up by techniques for rendering fancy 3D graphics, but there is also a lot of information relevant to data science. In particular, we found the chapters on human visual perception, image processing, and modern graphics hardware interesting. There are exercises for most of the chapters. The code used is a hodgepodge of C#, C++, and assorted other languages, so it may be hard to play around with.