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

 

Real-Time Shading
Author: Marc Olano, John C. Hart, Wolfgang Heidrich and Michael McCool
Publisher: A.K. Peters
ISBN: 1-56881-180-2
Purchasing: [Amazon.Com] - RRP US$49.95
Reviewed: 12th September 2002

Front Cover Shot:

Overview

Shaders are the new buzz-word in computer graphics. Sure, they've been around in one form or another for quite a long time - mostly in high-end software and research papers, but recently they've come down to the domain of the consumer-level PC. The advent of Direct3D8 brought texture and geometry shading into the domain of your average game developer, and with that move, it's dragged a lot of high-level research papers with it. Whereas people might have been interested in the past, it is now almost a requirement if you're intending to create cutting edge visuals.

This book is here to address the move from academic research and 'offline' renderers to the mass-market consumer level graphics engines.

Shining a light on a dark art.

Shader programming is a bit of a dark art - particularly at the academic level. The majority of published papers in this field focus on one area: lights and lighting. Thus it fits that this book has some heavy and lengthy discussion of lighting algorithms. Shaders in Direct3D (for example) allow game developers to implement far more realistic (even beyond advanced light-mapping) lighting solutions - combined with believable world geometry, we have powerful ingredients for very high quality computer graphics.

What is interesting to note in this book (compared with the ideas behind other similar ones) is the inclusion of background information - regarding the history of real-time shading. As mentioned, many of the techniques we're now exploring have been available for some time to the academic community.

Academic level text

This book, whilst aimed squarely at those interested in the latest advances in consumer/mass-market support for shaders, is essentially an academic level text. It will quite happily suit those veterans of the industry who want to go back-to-basics and learn these new tricks.

The writing style is clear and well defined, and in many cases cuts out a lot of the 'waffle' that you might find in the actual academic white papers this book is based on. It cuts straight to the important parts - what you need to know about it, and what you need to know to use it.

With this in mind, there are very few case studies given the amount of theory covered. If you're looking for a book where you can choose a lighting model and then copy the code to your application and 'voila!' have it working you've got the wrong book. This book explains the various formulae, and tricks necessary to get it working with but at the end of the day it's you that needs to write the assembly (of whatever) script that does the business.

Background theory

The book has quite a lengthy section on other shaders available - it proves for interesting reading, as you're more likely to get a better grasp on where the OGL2 and D3D9 shaders come from if you know what's been before. There are 5 other shading languages discussed - several of which you are bound to have heard mentioned (RenderMan for example).

High level shaders are the way of the future for real-time graphics, whilst few people know much about DirectX9 (at time of writing), it is well known that it includes an HLSL compiler, and many people will be aware of nVidia's Cg language. It will prove far easier to implement the ideas presented in this book using a high level shading language, and indeed, several aspects of this book read as though they expect you to be using a high level language.

Future Consideration

There is a nice section towards the end of this book regarding where we are now, and where we are going as far as real-time shading goes. Whilst the field is going to be changing every 6 months, it has shown to be fairly realistic thus far. Much of the discussion is up to date (as of the timing for this review) - whilst it's not public yet, DirectX9 is mentioned in a couple of places along with the much awaited OpenGL 2.0 specification.

In Conclusion

There are two weaknesses with this book that you should think about before purchasing. Firstly, there is very little applied shader code available; this is understandable as it would of required the authors to pick an API and target platform. Secondly, it's almost entirely textures and lighting - there is very little mention of geometry shaders ('Vertex shaders' in D3D).

If you are an advanced level graphics programmer, who wants to get the advantages of years of research into a consumer-level application then this book will serve you well. The writing style, and the combined skills of the authors on this subject is highly commendable.

 

Good Things Bad Things
• Brings academic level research down to the consumer level market. • Almost entirely theoretical, very little applied source code or information.
• Interesting section regarding the future • No significant mention of geometry shaders.
• Good coverage of what came before the consumer level implementations. • Quite complicated - definitely not for the beginner.
• Covers high-level shading languages. • You need to be skilled in the use of shader languages on your target platform.
• Sustains plenty of reading, justifying it's asking price. • Starts at the advanced end of the spectrum - no simple examples to get the ball rolling.
• Author's have experience in this field, and know what they're talking about.  
• API and language independent, which annoying for applied purposes is great from a learning point of view.  

 

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