Main Site Links Resources Tutorials
News VB Gaming Code Downloads DirectX 7
Contact Webmaster VB Programming Product Reviews DirectX 8
  General Multimedia Articles DirectX 9

Realistic Ray Tracing, Second Edition
Author: Peter Shirley and R. Keith Morley
Publisher: A.K. Peters
ISBN: 1-56881-198-5
Purchasing: [Amazon.Com] - US$39.00, [] - UK£26.51, [TransAtlantic Publishers] - UK£26.25.
Reviewed: 1st February 2004

Front Cover Shot:


This review is not the first time I've looked at this title - in fact, about 18 months ago the first edition was reviewed here. This review covers the second edition of this book; giving particular focus to the changes that have been made in this updated release.

This version of the book adds a couple of new theoretical sections, but the real bonus is that they have given a lot of thought to the application of the theory - actually writing a ray-tracer. One of the main criticisms I had of the first edition was that it wasn't very clear how to convert the theory to a workable solution. Some psuedo code was available, but anyone less than advanced would have found it tricky to do anything useful.

Practical and Theoretical

It is noticeable from the outset that this book has an additional sub-section "tacked-on" to all those that were present in the first edition. Obviously some sections don't warrant source code, but those that do are made all the clearer for having it included.

Despite the now obvious appearance of source code, it is still not linked in to the core text quite as well as it could. But, the text is still aimed mostly at the academic level - and this styling is fairly common, unlike programming books for non-academics where they'll have  some theory then a piece of code followed by a bit of explanation. Here it's all-theory then all-practice.

The code listings are very thorough - the code is not just an interface-outline, it is more of a listing of relatively bullet-proof implementation and interface codes; such that there are a lot of operator overloading and encapsulation mechanisms used. There are two minor problems with it being in this style:

Firstly, it's an awful lot of typing, as the code is fairly in-depth/lengthy - and there is no CD included with the book as found in most technical books. However, it's only a minor flaw as the source files can be downloaded from the books website.

Secondly, It's much more of a collection of useful classes - the material section presents a few generic material classes and the intersection code is not much more than a set of wrapped up math functions. There isn't really any section in this book that gives a thorough outline of "put class A here, link with B and use features from C - voila! you have a ray-tracer". That last step is down to the reader - you have the theory, you have the tools, now you put them together and get the results.

New Theory

The book itself, short of the more hands-on approach, contains less theory than the first edition. This may seem somewhat strange given that subsequent editions usually ADD to a book, not REMOVE it... whilst some of the more hard-core theory has departed, new theory sections have been added.

Photon mapping is one of the new buzz-words in the non-realtime/global-illumination field, consequently there is a short chapter on how photon-mapping can be used to improve the performance and quality of a traditional ray-tracer. However, it is not much more than a few pages giving an overview of what it is and why its useful - no theory and no implementation details.

Same again, please

The original book is one of the better ray-tracing books, partly because it is easy to read and also because it has a very comprehensive coverage of all the major topics (and some not-so-obvious ones). Such that when you look at the contents of the first edition it looks like there is more to it.

This second edition has condensed a lot of the information down, and replaced a lot of it with the C++ implementation / code listings; and the book has roughly 60 more pages to read. The format has remained the same, as has the writing style - and given that nothing was really wrong with the first edition in this sense there's no point fixing that which is not broke.

Having said this, the important content is still in place - and it's no less understandable for having been shortened in places.

In Conclusion

This book, in its second-edition form, is the book that the first should have been. The lack of applied examples / code listings in the first book was a bit annoying, but with this now fixed it can be said that this edition covers all of the bases needed for any ray-tracing enthusiast.

If the authors were to put all of the original material back in, and add a section to the end that put all the code together into a working / near-working ray-tracer (with explanations) then we'd have potentially the best and most comprehensive ray tracing text ever.

Good Things Bad Things
• Source code included, and it's fairly good/clean code. • Book is slightly more language-specific than the first text, no more generic psuedo code.
• Now more to the point, theory/math is a bit more balanced it feels. • Still heavy on the theory and mathematics in places.
• Covers some of the newer techniques, albeit briefly. • Have to go find the source code on the net rather than from a CD
  • References listing has been removed


DirectX 4 VB © 2000 Jack Hoxley. All rights reserved.
Reproduction of this site and it's contents, in whole or in part, is prohibited,
except where explicitly stated otherwise.
Design by Mateo
Contact Webmaster