Mathematics
for 3D Game Programming & Computer Graphics
Author:
Eric Lengyel
Publisher: Charles River Media
ISBN: 1-58450-037-9
Purchasing: [Amazon.Com]
- RRP US$49.95
Reviewed: 7th Septmber 2002
Front
Cover Shot:
Overview
Mathematics
is possibly the most important part of games and
graphics programming. Whilst some languages are
better than others, learning to program the
application is far simpler than being able to
fully understand the math and apply it to
any/every programming language you come across.
You
can get a fair way without fully understanding the
math behind a 3D engine, but you simply can't
reach the top level without knowing roughly what's
going on in your own code and in that of utility
(and core) libraries, and you certainly can't
conquer the top-level without knowing the math
back-to-front and inside-out.
This
book is aimed at those people who've realized that
they can't really get much further with their
current/next project with out a greater
understanding of mathematical theory and concepts.
Math
for 3D graphics
The
mathematics involved with 3D graphics are almost
entirely geometry related problems, obviously
there is more than enough pure math (at the end of
the day it's derived using pure math) but you'll
rarely come across any of the hyper-advanced
theoretical degree-level mathematics - especially
so if you're focusing on real-time calculations.
This
book has a good mix of both, the first three
chapters focus on vectors, matrices and
transformations - the 3 staple parts of graphics
and geometry related work. Any book you'll buy on
this subject is likely to start off with a
discussion and/or overview of these areas. You
really do need to get your head around these 3
chapters before diving in deeper. Unless you are
particularly good at math (or studying an advanced
course early) then you'd need to be at 1st-year
university level in mathematics to make much sense
of this book. It's billed on the back of the book
as an intermediate-advanced level book, thus it is
expected that you are familiar with mathematical
notation, proof and derivation.
There
are four useful appendices in this book relating
to pure math - and pretty much just the pure math.
These can be considered as either an introduction
or refresher, depending on your current/previous
education. They cover complex numbers,
trigonometry, coordinate systems and the Taylor
series. The are a few occurrences throughout the
book where these are mentioned, such that they are
definitely of good use.
Applied
Math
The
bulk of the book is more interested in applied
mathematics - It could all be classified as
pure/geometry math, but the way it's discussed,
presented and written is with respect to a
practical usage of the equation(s).
This
is definitely the best move the author could of
made with this book, the other math-related book
reviewed on this site (The
Geometry Toolbox) doesn't do this so well
and definitely suffers in comparison. I consider
myself a good enough mathematician, and I do enjoy
mathematics most of the time but I rarely find it
enjoyable to read through a long and generic proof
of something that might be useful to me.
Much of the theory in this book is related to a
particular applied context - which is often
outlined before you wade too deeply into
the math.
There
are several parts that are plain generic math, but
it's hard to see how else you could present it,
and at the end of the day it's fairly obvious what
you would use these for.
An
interesting aspect of this book is that there is
quite a strong coverage of physics - linear,
rotational and fluid. The first two will be of
most use to people, and the third probably only
for specific cases and/or the more advanced
readers.
Excercise!
This
is one area where the book stands that little bit
above it's competitors. At the end of each chapter
there is a brief summary of key points - which is
useful for reference and searching purposes. After
this brief summary there are a short set of
questions on the topics covered in the chapter -
much like you'd expect to find in a school text
book. The difficulty is varied (although of most
challenge to the intermediate-level readers) and
should prove to at least be a simple challenge to
all readers.
The
best part is that they include all the answers in
the back of the book, which of all the books I've
read and reviewed in this field is actually not
that common. There is no working to help you out
if you went wrong somewhere, which is a bit of a
shame, but some of the puzzles would require quite
a lot of page-space to go through completely.
Writing
Style and Layout
The
writing style throughout the book is clear,
concise and makes for easy reading - a difficult
feat when confronted with enough math symbols to
last a lifetime! It is also quite clear that the
author knows more than enough about mathematics -
and knows how to explain it well. It is also clear
that he has a decent grasp on how 3D graphics
work.
The
page layout is good too - for a complex math book
like this, diagrams are essential, it wouldn't
hurt to add more, but there are enough to back up
what is said in the core text.
In
Conclusion
This
book is very much a 'normal' book, in that it's
one your likely to find in the computer section of
a normal, decent, bookshop. As opposed to the many
similar titles that are strictly university
academic level texts. It's difficult to explain,
but there is definitely a fine line between those
that are for casual reading or enthusiasts etc...
and those that you'd find on the recommended
reading list for university courses. This book
comes in the former category, yet at the same time
offers much of the content and complexity that
you'd find in an academic-only text book.
I
highly doubt this book would serve a beginner
much, but as originally stated - for those that
have realized that to get far with 3D graphics
(and related programming) they need to improve
their mathematical skills then this is quite
possibly the best book on offer. For the advanced
reader who's done their degree and/or has a fair
bit of programming industry experience yet wants a
useful resource and reference book will probably
also like this text.
Good
Things |
Bad
Things |
•
Very solid coverage of all the key areas. |
•
You need to not only be familiar with
mathematical notation, but also happy when
it's used extensively. |
•
The text relates well to practical
scenarios that you might be familiar with. |
•
There is good coverage of the fundamentals
(vectors, matrices etc...) but it is
useful to know about them already.
Pre-Requisite knowledge |
•
In depth, but not too deep. |
|
•
Good writing style that is easy to read
and understand. |
|
•
Excellent price for a book with this much
content crammed in. |
|
|