Recently, there has been a resurgent interest in ray tracing due to the capability of the GPU. Reflecting recent trends, this second edition uses Java as the language for writing the ray tracer. The authors explain all concepts and processes with the aid of hundreds of diagrams, ray-traced images, and sample code. A supporting website provides Java code and a Java version of the skeleton ray tracers. The text is suitable for computer graphics students as well as individual programmers who would like to learn ray tracing.