Please support our sponsor:
DirectX4VB.Com - All You Need For Multimedia Visual Basic Programming

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


The Geometry Toolbox For Graphics And Modeling
Author: Gerald Farin & Dianne Hansford
Publisher: A.K. Peters
ISBN: 1-56881-074-1
Purchasing: [Amazon.Com] - RRP US$49
Reviewed: 10th August 2002

Front Cover Shot:


Geometry, and it's related math, is the basic principle behind the majority of computer graphics - 2D and 3D. When you (or an artist) created a 3D mesh the tools used have the basis in manipulating geometric shapes (typically triangles); this mesh then gets loaded into your D3D or OpenGL program where you send it to be rendered as a list of triangles. These triangles are then taken and transformed using matrices from model space to screen space - again, geometric mathematics.

Looking from another point of view, letting your users interact with your 3D environments - object picking, collision detection and ray tracing. All are pure mathematics, but because 3D worlds are (typically) made up of triangles the problem(s) become more of a geometry problem.

This is where this book is intended to fit in - covering the geometric mathematics involved in computer graphics.

The sharpest tool in the box

The book, as the title suggests, is intended to be a toolbox of useful formulae, algorithms and theory for a programmer (or designer) working with 2D and 3D geometry.

The first 9 chapters cover the fundamental mathematical theory behind 2D geometry - for a beginner it's far easier to learn the concepts in a 2D world before jumping into 3D. The later chapters move into 3D geometry - in some cases reiterating the content of the earlier 2D sections, but for 3D. There are several equations and algorithms that have little, if no meaning in 2D space (likewise with some that mean nothing in 3D space) so there is plenty of fresh content either side of this small divider.

The organization throughout the actual text is very clear - sketches appear in the outside margin, and mathematical equations are obviously separate from the main text body. There are no color plates included in this book, but there are plenty of black-and-white pictures/renders that are used to further illustrate ideas presented in the main text.


This book is heavily orientated towards first-year undergraduate software engineers/computer scientists. It is not necessary to be at this level - but you definitely need to be close. Studying math up to pre-university level is a definite must. Whilst transformations and vectors are well covered early on in the book, it will really help you if you at least know the basics of what a matrix is, what it does, and how it works.

The text is fairly fast paced and doesn't waste time (unnecessarily) covering content from earlier in the book. It is quite common to follow a proof for a formula and one (or more) steps to be based on previous work with a note "see section --- for more details"; which, unless you're on top of the game you may find yourself flicking back-and-forth through the book to understand one particular topic. The majority of algorithms and/or equations to sum up to a usable set of equations - which you can use regardless of whether you fully understand how you got there.

Monkey see, monkey do

This book is, as mentioned, a university-level text - and they are rarely as enjoyable to read as non-academic ("normal"!) books. The one area where this becomes irritating is in the lack of practical/applied examples.

As good as the theory is, and the final summary is always usable, it would be so much easier to learn from if there was a worked example to go with the summary (or in the proof). Obviously, this is either rather difficult or long-winded for some of the topics covered - but there are plenty of missed opportunities where it would not have been difficult to add.

In some respects it is a good thing that few examples are included, given the nature of the book it would probably have required the authors to adopt a programming language with which to demonstrate (for some, not all of the topics). As it currently stands, there is a small section on using Post-Script for a teaching aid/resource, but the rest of the book remains language-independent. Any decent programming language can handle the math covered here - VB, C, C++ and Java developers alike can use the content of this book.

In Conclusion

This book is definitely for advanced multimedia programmers - apart from the prerequisite knowledge for understanding the content, a beginner is unlikely to know how/where to apply the tools presented in this toolbox. For those advanced programmers out there, this is a solid book that will prove to be a very useful resource time-and-time again.

Good Things Bad Things
• Programming language independent • Reasonable bibliography, but no substantial reference list.
• Very thorough coverage of the field. • A few more worked examples would have been nice
• Covers both 2D and 3D geometric mathematics. Quite heavy on mathematical notation, if you aren't familiar with mathematical symbols you might get lost.
• Works well as a reference book, and as a normal cover-to-cover reading book.  
Answers lots of questions you regularly see on multimedia programming message boards.  
Well presented - page layout and writing style.  


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
This site is hosted by Exhedra Solutions, Inc., the parent company of and