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

Special Effects Game Programming with DirectX
Author: Mason McCuskey
Publisher: Premier Press
ISBN: 1-931841-06-3
Purchasing: [Amazon.Com
] [Fatbrain.Com] - RRP US$59.99
Reviewed: 29th December 2001

Front Cover Shot:

Overview

As long as computer games have existed there have been special effects used to brighten things up; even if it was just palette animation to create some trippy animations... However, with the advent of Direct3D8 (pixel and vertex shaders in particular) developers finally have complete control over the hardware to create some amazing 3D effects. Take a look at any of the latest commercial releases and you'll see what I mean.

With this new found power, we need to know how to use it, and what better a place than a nice big book? And I can say now, this is definitely the book to look at. Whilst it doesn't have the detail that many of the academic books/papers have, it doesn't really need it - this is hands-on practicle material.

The Structure

The structure and style of this book is very similiar to the other books in this series (two others are reviewed on this site), this is not too surprising, and most definitely a good thing. The book is basically divided into 3 main parts - The Basics, 2D effects and 3D effects, with a total of 24 chapters.

The first part, "The Basics", builds up from a first windows program, then covers the more advanced graphics available through the Win32 API. It then moves onto the basics of DirectX, with a short section on each of the components - then it delves into the real meat of the first part - 3D maths, 3D Theory and a more in-depth discussion of the DirectXGraphics API.

The chapters on the Win32 graphics functions are really only for learning purposes, and maybe for building some simple non-DirectX programs (editors/tools for example), because as soon as you get into using Direct3D for your graphics the Win32 API will look pathetic in comparison!

Once you move into Parts 2 and 3 it ceases to be so linear, Each chapter (or chapters in some cases) cover a specific effect - be it water, fades or explosions, and you dont need to read them in the order they appear - in fact, you dont really need to read every chapter in each section (it's worth reading them though). This is a very clever way of designing a book - a method that I like alot. Once you've covered the basics and have them under your belt you can, to a certain degree, choose your path - looking into and experimenting with the effects you want, when you want them.

Content

The content of the book is generally excellent - although, dont expect to find every single possible effect in this book. It would be unrealistic to expect any single book, or volume(s) of book to cover every possible effect, because in themselves all effects are unique and slightly different. The best way to get around this is to learn a generic pattern for creating effects such that you can use your technical know-how (once you've learnt it) with your creative imagination to create an infinite number of effects.

This book will allow you to build up your technical knowledge such that you can innovate and create your own effects, many of the basic effects are covered here - and in learning how these effects work you will learn many generalised principles (such as image processing "kernels", which are demonstrated here through blurring).

The biggest innovation in special effects for real-time multimedia has been shader technology, new to Direct3D8. This book devotes an entire chapter to the general architecture of pixel and vertex shaders - they're syntax, theory and functions etc... And they do crop up in a few effects later on in the book. However, I would have appreciated some more general examples of using shaders - there are quite a few included on the CD, but even if it were a chapter of "this shader does this ____ : This is how/why..." I would have been happy.

The writing style is excellent through-out, and the descriptions of theory/important aspects are clear and easy to understand, whilst this maybe looses some of the mathematical precison of the descriptions, it is definitely for the better. Many of the more complicated aspects are backed up with very simple laymans-terms statements to reinforce the facts, and on several cases I realised some things I'd previously decided were very complicated are actually quite simple - just wrapped up in lots of complicated techno-babble!

There is a good coverage of the basics of Direct3D programming, however it is kept relatively brief due to it being a required step, rather than being the focus of the book. Such that you can easily gain a functional knowledge of the API, but you would be well advised to check out another Direct3D book (see here)/resource/website to get a fuller and deeper understanding of the general API before venturing into the hardcore special effects.

An Additional Resource

The CD included with this book is more than just a dumping ground for the source-code in the book, it can quite easily be seen as an extension to the actual text. The book is completely linked into the contents of the CD, with regular box outs "see the sample program ____ " etc...

Then there is the actual CD interface - that itself deserves some credit. Many CD's I've had in my many books tend to just be a few directories full of files, and a readme.txt to explain whats where. Not in this case, we get a full-blown interactive browser with a very very cool sample browser. The sample browser has a list of all the samples included, and when clicked on shows a readme in the bottom pane and at the click of a button will launch the sample program to go with - this just makes looking at the samples in action an effortless task, which is what I like.

The CD is fully packed with a long list of useful programs, including the DirectX 8.1 SDK (despite listing the 8.0 SDK on the cover) and the Nvidia Effects Browser/SDK. Both are essential tools to follow the work in this book, and whilst they are freely available online, it's so much easier to have them to hand...

Some Minor Let-Downs

There are a few minor points that you can hold against this book, none of them are hugely significant and may or may not bother you at all...

Hardware - to get the most from this book you need some top-of-the-line hardware, namely a 3D card supporting pixel/vertex shaders in hardware. Whilst this isn't so much specific to the book, rather to general special-fx programming it is a little bit of an annoyance; particularly given that the GeForce 3 and Radeon cards cost up to £300 still...

Language - as is the standard with all books of this type, C/C++ is the standard language used. Unlike some books, we dont get an overview of C/C++ with this book (which is a good thing, as I always felt that the basic coverage in other books wasn't really worth the trees). However, we do get a brief coverage of some advanced C++/STL functions that the author has used. To get very far with this book you need to be fairly fluent in C/C++

Diagrams/Picture - there are many many diagrams and pictures in this book, which is definitely a good thing, but as is true with other books in this series, they're all in black-and-white. Whilst they have constructed it such that it doesn't matter a huge deal, it would be nice to see some colour-plates, or to have some colour pictures on the CD...

In Conclusion

I like this book, and I believe that if you can get along with the C/C++ syntax then you will enjoy this book and find it to be a very useful resource. The few let-downs I just listed are outweighed ten-fold by the good points for this book, so dont linger on them for too long!

Good Things Bad Things
• nicely divided into parts, with the 2nd and 3rd parts designed particularly well. • Entirely in C/C++, which may be a drawback for VB developers.
• Covers new territory, that isn't brilliantly covered anywhere else. • Could have done with some colour diagrams/colour plates
• Covers both 2D and 3D elements  
• Gives the knowledge required to expand beyond this book  
• The Author seems experienced in this field, and knows what he's doing.  
• Excellent CD included - with an excellent browser.

 

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