An Introduction To Ray Tracing
Every year the computer graphics community meets at an annual gathering called the SIGGRAPH conference. One of the highlights of the conference is a series of half-day and full-day courses on a wide variety of topics in computer graphics.
In 1986 ray tracing was becoming a popular field of research. I thought it would be fun to bring together some of my colleagues to present a SIGGRAPH course on the subject. We split up the topics and created a day’s worth of material. The course was a big hit, and we repeated it for a few years.
We wanted to share our course with people who weren’t able to attend the conference. This was before the Web, so the answer was to write a book. We updated and revised our already terrific course notes, and produced this book.
I was pleased and honored that this book brought together some of the finest people in the field – not just great researchers, but really good people. The other contributors, in alphabetical order, included James Arvo, Robert L. Cook, Eric Haines, Pat Hanrahan, Paul S. Heckbert, and Pat Hanrahan.
The cover was created by Jim Arvo. He noted that Plato had famously identified the five fundamental polyhedra, now called the “Platonic solids” in his honor. Jim realized that we used all of these shapes every day, but the Newell teapot is used just as much. He decided it deserved to join the ranks of basic shapes, and the “teapotohedron” is proudly displayed here on its own pillar.
Here’s the table of contents:
- Preface
- An Overview of Ray Tracing (Glassner)
- Essential Ray Tracing Algorithms (Haines)
- A Survey of Ray-Surface Intersection Algorithms (Hanrahan)
- Surface Physics for Ray Tracing (Glassner)
- Stochastic Sampling and Distributed Ray Tracing (Cook)
- A Survey of Ray Tracing Accleration Techniques (Arvo & Kirk)
- Writing A Ray Tracer (Heckbert)
- A Ray Tracing Bibliography (Heckbert & Haines)
- A Ray Tracing Glossary (Glassner)
- Index
The book is a little dated now, of course. A lot has happened since 1986! But the fundamentals covered in this book haven’t changed: the geometry of intersecting objects with rays, the way we determine illumination and shadows, how we find reflections and refractions, and so on. Of course, the implementations have changed a lot, with some of these ideas now hiding deep inside shaders living on GPU chips.
There are now many books on image synthesis, and even ray tracing in particular, and many of them are more modern and up-to-date than this. But some people still like the friendly approach of this book, and the source code it offers for a fully working ray tracer. You can find new and used copies at all your favorite booksellers, including Amazon.