|
Focus
On Curves and Surfaces
Author:
Kelly Dempski
Publisher: Premier Press
ISBN: 1-59200-007-X
Purchasing: [Amazon.Com]
- RRP US$20.99
Reviewed: 9th February 2004
Front
Cover Shot:

Overview
With
the recent advances in real-time 3D graphics
rendering, curved geometry has been of particular
interest. Whereas artists used to have to
approximate curved models using multiple linear
segments (in order to keep the number of triangles
minimal) we can now generate high density
approximations that to all intents and purposes
look 'curved'. For example, the Quake-3 engine was
highly praised for its usage of such techniques.
Some
of the visionaries in real-time (or even non
real-time) 3D graphics claimed curved surfaces as
being the next basic rendering primitive. This is
a reasonably strong statement that is well beyond
the context of this review, but nonetheless is an
interesting concept - one that fully justifies
reading a book like this.
NURBS
(Non Uniform Rational B-Spline) rendering, one of
the most common forms of 'curved surface'
rendering, is regularly used to model more organic
items - such as animal and plant life. One of the
recent snowboarding games used NURBS surfaces to
generate a more organic and realistic form of
ski-slope in it's game environment. There are more
than enough other contexts whereby a clever usage
of NURBS not only simplifies modeling on the
artists part, but also rendering on the
programmers part.
The
author of this book, Kelly Dempski, has written a
previous book for the Premier Press Game
Development series - "Real-Time Rendering
Tricks and Techniques in DirectX" (read the
review here).
This is important simply because, having read over
50 books in the last few years I still keep this
particular book within easy reach. It is one of
6-8 books that I regularly use as a reference for
various projects that I work on - it is simply
that good.
Grab
your graphics calculator
This
book is reasonably heavy on the mathematics, as
such you may wish to have a calculator and a
mathematical brain to hand... However, it's no
where near as heavy as some of the more academic
texts on the subject. It is a basic pre-requisite
of a book on this subject - no discussion of
surfaces (let alone curved surfaces) will be
complete without a hefty does of mathematics at
some point.
It
could be seen in either light, but the
short-and-sweet format of the 'Focus On' series
limits the mathematical depth. Such that you will
be spared much of the heavy calculus-based
derivations and proofs of the curve functions, yet
at the same time this part is skipped more in
favor of defining a result and using it. Whether
you see this as good or bad depends entirely on
what you are looking for from a book of this kind
- I personally far prefer the focus on, and usage
of, a resultant equation than a three page
derivation of how/why said formulae exist!
Not
like learning to walk up a vertical wall
If
you'll excuse the pun, this book has a very
reasonable learning curve. For a topic that, as a
fundamental unit, is based on mathematics it is
quite refreshing not to get destroyed by
mathematical theory having only read the first 30
pages.
Curves,
or more particularly, parametric equations are
first explained in a strictly two-dimensional
manner. This helps build up a basic understanding
of what they are, and how each type of function
differs. It's not until this 'base' is cemented
that the book moves onto 3D surfaces (typically a
multiplication of two n-dimensional parametric
curves).
Having
commented on the progression being reasonable,
it's not quite a walk-through. Expect this book to
be reasonably hard, yet I have to give huge
respect to Kelly Dempski in that it is not
impossible. Hard but still understandable is a
quality that many technical books lack - on the
unfortunate occasion the "introductory"
chapters explaining the basic mathematics used
throughout the book is more complex than the
majority of the book, but definitely not in this
case.
Applied
theory
As
mentioned, this book has a good coverage of the
mathematics behind curved surfaces, yet this is
not overly useful unless you know what to do with
said theory. Dempski, as stated in the
introduction, is an engineer - and is more
concerned with implementing the techniques than
theoretical 'musings'. This is clear throughout
the book as there is quite a lot of discussion
regarding the sample code and various tid-bits of
code here and there, as opposed to all out
implementation or all out theory.
The
last chapter in this book is dedicated to the more
practical implementations of curved surfaces in
the Direct3D API. For all of the theory in this
book, it is useful to have this chapter -
explaining the finer points of sticking your head
in the sand and letting D3D do the hard work for
you. However, higher order surface rendering in
D3D is a bit of an odd topic - it is highly
dependent on the hardware, and the hardware
vendors have been a bit random in their
implementations (and some vendors
enabling/disabling support with different software
releases). As such, it is a useful topic - but due
to no fault on the authors part, still a little
ambiguous due to the D3D specification and the
driver implementation.
But,
using the code and techniques in this book the
deficiencies of a specific API should be
negligable - as you should be more than capable of
writing your own implementation (one such
implementation is available on this site, here).
In
Conclusion
This
is a slight exception for the 'Focus On' series;
whereas most of the others reviewed on this site
proved to be useful overviews/introductions to
their respective field, this book is actually a
good all-round book on curves and surfaces. As
shown in the above link to a tutorial on this
site, I've done a bit of work with higher order
surface rendering, and having read this book it
covers everything I found necessary to learn in
order to write my initial sample - and gives more
than enough extra info. As such, this book comes
highly recommended to anyone who is
interested in going beyond the trivial polygonal
modeling/rendering tools.
| Good
Things |
Bad
Things |
| •
Experienced author |
•
Useful for implementing, but possibly not
enough maths for the hardcore readers. |
| •
Good on the maths, but not too heavy |
•
Depth limited by size - doesn't cover the
full extremes of the field |
| •
Enough maths to make it a usable reference
book as well as a learning book. |
•
Still a bit ambiguous how much use curved
surface rendering is in practice. |
| •
Applied section particularly useful |
|
| •
Reasonable CD included - all source code,
few useful tools |
|
|