Ray Tracing, Second Edition
Peter Shirley and R. Keith Morley
Publisher: A.K. Peters
- US$39.00, [Amazon.co.uk]
- UK£26.51, [TransAtlantic
Publishers] - UK£26.25.
Reviewed: 1st February 2004
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.
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
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.
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.
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:
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.
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
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.
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
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
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.
said this, the important content is still in place
- and it's no less understandable for having been
shortened in places.
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.
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.
Source code included, and it's fairly
Book is slightly more language-specific
than the first text, no more generic
Now more to the point, theory/math is a
bit more balanced it feels.
Still heavy on the theory and mathematics
Covers some of the newer techniques,
Have to go find the source code on the net
rather than from a CD
References listing has been removed