While the unchanged basic mathematical principles are still present in the seventh edition of this book, unlike previous editions, this one uses WebGL and JavaScript for all of the examples.
The book is divided into 12 chapters. Chapters 1 through 7 explain the fundamental concepts of computer graphics, covering such topics as WebGL programming, understanding and manipulating 3D geometric transformations, projective transformations, lighting, and texture mapping.
An overview of the field is given in chapter 1. In chapter 2, the authors introduce WebGL programming using the Sierpinski Gasket as the example. While the example in chapter 2 is static, chapter 3 presents interactivity with WebGL based on the browser environment. In chapters 4 and 5, the authors describe the geometric transformations and projective transformations in viewing. Lighting and shading are presented in chapter 6. Chapter 7 focuses on discrete techniques, including texture mapping, anti-aliasing, and blending.
While readers should follow the first seven chapters sequentially, they can read the rest of the book in almost any order. Chapter 8 discusses clipping, line generation, and polygon fill. Chapter 9 talks about how to show relationships among primitives in models, which covers scene graphs. Instead of a surface-based model, a physical model using particles is discussed in chapter 10. Chapter 11 covers the curve and surface modeling. The last chapter, chapter 12, discusses advanced rendering, including ray-tracing, marching cubes, and so on.
I like this book because the top-down approach makes it easier for the reader to learn programming in computer graphics. The book offers updated shader-based programming techniques for interactive computer graphics using WebGL and JavaScript. Furthermore, it has a website that provides the examples and source code for the book. While I highly recommend this book for a computer graphics course, readers of all levels who are interested in the subject can enjoy it.