| Special 
                                Effects Game Programming with DirectXAuthor: 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. |  |     |