This volume attempts to continue along the path blazed by the first two volumes of this series, capturing the spirit of the creative graphics programmer. Each of the Gems represents a carefully crafted technique or idea that has proven useful for the respective author. These contributors have graciously allowed these ideas to be shared with you. The resulting collection of ideas, tricks, techniques, and tools is a rough sketch of the character of the entire graphics field. It represents the diversity of the field, containing a wide variety of approaches to solving problems, large and small. As such, it “takes the pulse” of the graphics community, and presents you with ideas that a wide variety of individuals find interesting, useful, and important. I hope that you will find them so as well.
This book can be used in many ways. It can be used as a reference, to find the solution to a specific problem that confronts you. If you are addressing the same problem as one discussed in a particular Gem, you’re more than halfway to a solution, particularly if that Gem provides C or C + + code. Many of the ideas in this volume can also be used as a starting point for new work, providing a fresh point of view. However you choose to use this volume, there are many ideas contained herein.
This volume retains the overall structure and organization, mathematical notation, and style of pseudo-code as in the first and second volumes. Some of the individual chapter names have been changed to allow a partitioning that is more appropriate for the current crop of Gems. Every attempt has been made to group similar Gems in the same chapter. Many of the chapter headings appeared in the first two volumes, although some are new. Ray tracing and radiosity have been combined into one chapter, since many of the gems are applicable to either technique. Also, a chapter more generally titled “Rendering” has been added, which contains many algorithms that are applicable to a variety of techniques for making pictures.