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
      Miscellaneous

 

Practical Algorithms For 3D Computer Graphics
Author: R. Stuart Ferguson
Publisher: A.K. Peters
ISBN: 1-56881-154-3
Purchasing: [Amazon.Com] - RRP US$49
Reviewed: 6th August 2002

Front Cover Shot:

Overview

3D computer graphics programming, be it CAD design or interactive games, is made up of two main parts: firstly is the core math and algorithms, secondly is learning and usage of a 3D renderer/hardware interface to display the image.

To become a master of computer graphics it is necessary to learn both areas - you can learn all you like about Direct3D or OpenGL (as two examples) but without the fundamental math and programming algorithms you won't go the full distance. This book deals with those algorithms and mathematical equations you will need to satisfy this relationship.

Anyone who's spent much time on/around game development message boards will be aware that you regularly (maybe you've even posted similar questions) get people asking how to do some theoretical graphics function - eg, terrain following for height-mapped terrain. You'll then get someone reply who says you need to use ... equation(s)/Algorithm(s). The original poster may well then say "What?" or "How?"... This book goes a long way to answering these sorts of questions - you want to know how to implement boolean modeling? an introduction to Inverse Kinematics...

As another example - many of you may be familiar with the Game Programming Gems series of books (so far up to volume 3). This book is of a similar nature - but far more advanced, and far more theoretical/math orientated. You can use this book to look up specific algorithms, equations or techniques - or you can read it from cover to cover and try to retain a general knowledge of the various algorithms presented.

Wouldn't a searching algorithm be useful?

The book itself is just over 530 pages in length, not huge by other technical-manual/text standards. However, it manages to fit no less than 70 sections. While not every single one presents a totally new algorithm, it does make for a very impressive and complete coverage of the most common algorithms at use in 3D graphics.

All of the algorithms/sections can be sub-classed into 3 main areas: 
• foundation/fundamental mathematics (vectors, planes, lines, transformations)
• generalized graphics algorithms (polygonal modeling, procedural textures, ray tracing, animation)
• applied algorithms (Graphics rendering with OpenGL and Direct3D)

This book, as mentioned, is an advanced text - you need some foundation in graphics (preferably 3D) to make much use of it, and to understand it you really need to have a good all-round understanding of pure mathematics (to a pre-university level should do). The beginning of the book covers much of the foundation necessary for the book - it will serve as a good reminder or refresher course, but it won't properly teach you the fundamentals. 

Academic level text

This book would probably quite easily find itself on the recommended reading list for university courses in computer science, and it is definitely written in this style. It is a good book to read - unlike many text-book like resources which are full of complex equations and diagrams. There are a lot of diagrams and equations in this book, but there is also plenty of normal writing and explanation.

As mentioned, it helps to have reasonable experience of working with computer graphics (even if it is only simple level stuff), but you don't necessarily need to even know what Boolean Modeling is before reading the chapter that covers it.

The only area that really does let the book down is it's last chapter on Direct3D; whilst it's a nice gesture (there is one for OpenGL as well) it uses the really quite ancient Retained Mode interfaces. These were fairly old when it came to Direct3D6, and had were only left in Direct3D7 for compatibility (they weren't changed) and come Direct3D8 they're completely gone (and aren't coming back). Retained Mode did have it's uses - but not many once you've learnt/used the Immediate Mode variation. I appreciate, it would possibly have been the best choice when the book was written - but as of now, it's not much use to anyone.

An Additional Resource

As with many other books reviewed on this website, a CD is included. This is particularly useful for this type of book - many of the applications are very generalized (they have to be), and seeing some working code is often helpful. Very few of them have properly working examples, most are just source code files.

However, they are all in C/C++ - which doesn't matter hugely, as this sort of source code is easily portable to any language (VB, Java, C# etc...).

In Conclusion

This book would make a great resource for someone who's been round-the-block with 3D graphics, know's what they're doing. It isn't a book for beginners, apart from being too complicated for a 3D graphics "newbie" the general content is of little use - there are many algorithms here that only an experienced programmer would know what to do with, and why they need them.

Good Things Bad Things
• Nicely segmented and divided up into chapters. • An advanced text with only a few real-world examples.
• Works brilliantly as a reference book, and also as a general reading book. • Quite a high level of math/programming skill required as a prerequisite. 
• Covers pretty much all the major "areas" of 3D graphics algorithms • Applied Direct3D section is not particularly relevant anymore.
• A good reference list at the end of chapters for those wishing to read further.  
• A good CD included to back up the text.  

 

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 RentACoder.com and PlanetSourceCode.com