01 / Reading Guide
Reading Guide
Citation
Marschner, S., & Shirley, P. (2021). Fundamentals of Computer Graphics (5th ed.). A K Peters/CRC Press.
Chapter Summary
The fifth edition runs to 716 pages with 514 colour illustrations in twenty-three chapters. Chapters 1–14 are written by the two main authors and form the core course; Chapters 15–23 are contributed by specialists, each on a single topic. The publisher describes the approach as focused on geometric intuition, explaining how images get onto the screen through two complementary approaches, ray tracing and rasterization. This edition reports major revisions to the chapters on shading, ray tracing, physics-based rendering, mathematics and sampling, and the absorption and reworking of several chapters for a more natural flow.
Chapters 1–3: Introduction; Miscellaneous Math; Raster Images
The book opens with an overview of the field, a chapter collecting the mathematics used throughout (beyond linear algebra, which has its own chapter later), and a chapter on raster images, the grid of pixels that every method in the book ultimately produces.
Chapters 4–5: Ray Tracing; Surface Shading
Ray tracing comes early, before linear algebra and transformations: the first complete method for making an image is to trace rays from the eye into a scene. Chapter 5 treats surface shading, how the colour of a visible surface is computed from light and material.
Chapters 6–8: Linear Algebra; Transformation Matrices; Viewing
The mathematical core for the second approach: vectors and matrices, transformation matrices for moving and placing objects, and the viewing transformations that map a three-dimensional scene onto a two-dimensional image.
Chapter 9: The Graphics Pipeline
Rasterization, the second of the two main approaches, is presented as the graphics pipeline: the sequence of stages through which graphics hardware turns geometric primitives into pixels.
Chapters 10–11: Signal Processing; Texture Mapping
Chapter 10 provides the signal-processing background for sampling and filtering images; Chapter 11 applies it to texture mapping, attaching images and other patterns to surfaces.
Chapters 12–14: Data Structures for Graphics; Sampling; Physics-Based Rendering
These chapters support more advanced rendering: spatial and other data structures that make rendering efficient, sampling (one of the chapters substantially revised for this edition), and physics-based rendering, which connects shading to the physics of light.
Chapters 15–17: Curves; Computer Animation; Using Graphics Hardware
The contributed chapters begin with curves, the splines named in the publisher's description (Michael Gleicher), computer animation (Michael Ashikhmin) and practical programming of graphics hardware (Peter Willemsen).
Chapters 18–20: Color; Visual Perception; Tone Reproduction
Three chapters on the human side of images: colour (Erik Reinhard and Garrett Johnson), visual perception (William B. Thompson) and tone reproduction, the mapping of the wide range of real-world light levels to the limited range of a display (Erik Reinhard).
Chapters 21–23: Implicit Modeling; Computer Graphics in Games; Visualization
The final contributed chapters cover implicit modeling (Brian Wyvill), graphics in games (Naty Hoffman) and visualization (Tamara Munzner).
Key Concepts
Chapters 1–5: Images and ray tracing
- Raster image: an image stored as a grid of pixel values.
- Ray tracing: computing an image by following rays from the viewer into the scene to find visible surfaces.
- Surface shading: computing the colour of a surface point from light sources and material properties.
Chapters 6–9: Transformations and the pipeline
- Transformation matrices: matrices that rotate, scale and translate objects, combined into a single transformation.
- Viewing: the sequence of transformations that maps a 3D scene to screen coordinates.
- Graphics pipeline: the stages through which rasterization-based systems turn primitives into pixels.
Chapters 10–14: Sampling, textures and advanced rendering
- Sampling and filtering: representing continuous signals by samples and controlling aliasing, using ideas from signal processing.
- Texture mapping: varying surface properties by looking up values in an image or function.
- Spatial data structures: structures that speed up queries such as ray–object intersection.
- Physics-based rendering: rendering grounded in the physics of light transport.
Chapters 15–23: Contributed topics
- Splines and curves: smooth curves defined by control points.
- Tone reproduction: mapping scene luminances to the limited range of a display.
- Implicit modeling: defining shapes as the level sets of functions.
- Visualization: graphical representation of data to support understanding.
Critical Analysis
Strengths
- Two approaches side by side. Presenting ray tracing (Chapter 4) before the pipeline (Chapter 9) lets students produce images early from a simple, complete algorithm and then see rasterization as a different answer to the same question. The publisher stresses the emphasis on geometric intuition.
- Self-contained mathematics. The book carries its own chapters on miscellaneous mathematics, linear algebra and signal processing. Fernando Berzal (University of Granada), quoted by the publisher, calls the book unusually self-contained for this reason.
- Expert contributed chapters. Specialists write the chapters on colour, perception, tone reproduction, animation, games and visualization, a feature Berzal describes as uncommon in standard textbooks. These chapters let a course extend beyond rendering into neighbouring areas.
- Revised core. The fifth edition reports major updates to shading, ray tracing, physics-based rendering, mathematics and sampling, the chapters most courses rely on.
Limitations
- No programming interface in the core. The table of contents has no chapter built around a particular graphics API; Using Graphics Hardware (Chapter 17) is the one chapter on programming hardware, and it comes among the contributed chapters. Students who need to write OpenGL, WebGL or Vulkan code will need separate material.
- Uneven contributed chapters. Because Chapters 15–23 are single-topic chapters by different authors, each is an introduction rather than a full treatment, and they do not form a continuous sequence.
- Breadth over depth. At over 700 pages and twenty-three chapters, the book covers far more than one course can; the mathematical background is compressed into a few chapters (2, 6 and 10), so students with weak linear algebra should expect to spend extra time there.
Where It Fits in the Course
Within the course's graphics books, this is a principles-first main text. Gambetta's Computer Graphics from Scratch is a much shorter introduction in which readers write a raytracer and a rasterizer from first principles in pseudocode; it makes a gentle preparation for Chapters 4 and 9 here. Angel and Shreiner's Interactive Computer Graphics covers similar fundamentals in the opposite order: it starts with programming interactive WebGL applications with shaders and only later opens up the algorithms inside the pipeline. A course that wants students coding against a real API from the first week might use Angel and Shreiner as the main text and this book as a reference for the mathematics and theory.
For further study, Real-Time Rendering by Akenine-Möller and colleagues is a comprehensive reference on GPU rendering for games and interactive applications, extending Chapters 9 and 17; Pharr, Jakob and Humphreys's Physically Based Rendering presents a complete photorealistic renderer in literate-programming style and extends Chapters 4, 13 and 14. Rogers, Sharp and Preece's Interaction Design belongs to the human-computer interaction side of the course and does not overlap with this book's material.
How to Use This Book
The book suits undergraduates who can program and have met calculus and some linear algebra; its own mathematics chapters serve as review rather than a first course.
- Core sequence (one semester): Chapters 1–9 in order, consulting Chapters 2 and 6 as needed. Implement a basic ray tracer while reading Chapters 4–5, then a simple rasterizer or pipeline program with Chapters 7–9.
- Second block: Chapters 10–11 for sampling, filtering and textures; then Chapters 12–14 for acceleration structures and physics-based rendering, which suit a more advanced or second course.
- Contributed chapters: pick according to interest: Chapters 15–16 for modelling and animation, 18–20 for colour and imaging, 17 and 22 for real-time work, 23 for visualization. Each can be read on its own after the core.
Programming is essential: the book explains principles, so pair it with a project in a language and graphics API of the course's choosing, and test each idea, from shading to texture filtering, by implementing it.
