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

Advanced Global Illumination
Author: Philip Dutre, Philippe Bekaert and Kavita Bala
Publisher: A.K. Peters
ISBN: 1-56881-177-2
Purchasing: [Amazon.Com] - US$48.00, [Amazon.co.uk] - UK£32.25, [TransAtlantic Publishers] - UK£32.25
Reviewed: 30th January 2004

Front Cover Shot:

Overview

Lighting has been a 'growth' area in computer graphics over the last few years, it is definitely one field of computing that you can see the benefits of having stupidly powerful desktop machines available to the masses. As such, a lot of work has been done all over the place into clever and inventive way to generate more-and-more realistic computer imagery.

The latest in-thing is dynamic lighting , and particularly dynamic shadowing (by dynamic I mean not pre-computed, but done in real-time). Think of 'Doom 3' and 'Deus Ex: Invisible War' for popular examples in a gaming environment. However, as clever and fashionable as this technology is, it is not the focus of this particular book. Rather, static (pre-computed) lighting is the intended target.

Static lighting through lightmaps was very popular in games around the Quake 1 - 2 era; and with the advent of dynamic lighting would appear to have dropped out of common usage in recent times. However, the current breed of static lighting algorithms are the real cream-of-the-crop - if you want realistic lighting, you use these algorithms. They are only static because they are still very computationally expensive (one commentator speculated that with Moore's law, desktop PC's will be capable of this in real-time around 2010). Static lighting is far from dead, and you'll probably only see more and more of it in all fields of multimedia programming over the next few years.

Current uses for advanced global illumination

Advanced global illumination has been routinely used in Hollywood special effects for many years now (almost every CGI film will use at least 'ray traced' lighting). Professional architecture tools use it to demonstrate a given building under natural lighting conditions. Computer games use it to up-the-ante and output the best possible 3D lighting. Have a look at a few of the animations on this website (in particular 'The Light of Mies van der Rohe') to see the capabilities of global illumination.

Many of you may be familiar with the Max Payne games series - the team behind the (currently) 2 games used Radiosity lighting (an Advanced Global Illumination algorithm) to statically light many of the environments that are encountered throughout the game. The game was routinely praised for its near-photo realistic lighting and texturing, praise that probably wouldn't have been given had they not used Radiosity lighting.

Another point to note is that as the popularity of advanced global illumination increases, more and more people are trying to find ways to get it working in a real-time situation. Currently its limited to partial pre-computation and a few shortcut optimizations/cheats; but one emerging format is that of 'Spherical Harmonics'. This involves a lengthy pre-computation phase, but once this is done (and stored for repeated use) the models can appear to be lit dynamically, in real-time, by any number of light sources. It would appear that the next generation "Unreal" game engine will be making use of Spherical Harmonic lighting.

The point I'm trying to illustrate is that it's not just a research topic anymore - ordinary multimedia programmers are using these algorithms in a wide range of fields. If you want in on this, then you're likely to need a book on the topic - which is where this book comes in handy...

Very complex

Not only will your CPU be complaining after an hour of strenuous exercise at the hands of a GI (Global Illumination) algorithm, most mere mortals will likely be up all night scratching their head trying to understand how this stuff works. Simply put, its not for the feint-hearted and it won't be an easy ride.

This book comes across as being very heavy on the mathematics and has some pretty hairy diagrams to illustrate said equations, but this can't be seen as a bad sign for the book - its just the unfortunate fact that it is targeting a far from trivial topic.

As such, this book is to be recommended only to the advanced programmers and competent mathematicians amongst us. I have huge respect for this book in that it does as good a job as possible for an academic text to explain the topic; I consider myself to be fairly happy around complex math formulae - but I had to skip to the conclusion on several sections.

A bit of perseverance and effort are well worth the rewards; as you will genuinely feel clever (if you don't already!) if you can attain a sound understanding of this field - and from reading this book cover-to-cover you are likely to get a good understanding. Luckily, if you're active in online communities, the popularity of GI algorithms means that you're not going to find it too hard to find someone who can help you out.

Learning from a research text

This is essentially and academic level text book, it is not one of the more applied/enthusiast level computer graphics books. As such, it's not as straight forward - and you don't get a huge amount of help when it comes to actually implementing a usable application. 15 pages towards the end of the book are dedicated to a partial implementation of a set of classes for path/ray tracing; but these aren't much use beyond a casual lookup to get some ideas as to how other people would go about writing a GI application.

Some people will appreciate a more hands-on approach, such as the 'Focus On Photon Mapping' book also reviewed on the site (here). I find it to be a reasonable balance to read a complete and comprehensive text book such as this, and augment it with some of the more applied tutorials/articles freely available online (the ones that actually show you how to implement this technology).

As already implied, there are some pretty heavy pre-requisites for this text - physics, mathematics and programming skills will all be stretched. It may sound a bit odd to mention physics in the preceding list - but given that many GI algorithms model physical properties of light waves ("The physics of light transport" chapter in this book) it is preferable if you are at least comfortable with the basics of physics.

Good all-round coverage

This book, unlike many similar, has a fairly general approach to Global Illumination. Instead of focusing on a particular area such as Radiosity, Ray Tracing or Photon Mapping, this covers them all to a reasonable depth. The good thing about this book is that the various GI algorithms in use today all share similar, if not identical, theoretical foundations - and this book does a good job of explaining the basis and then specialising it a bit more with reference to specific forms of GI.

The common fundamentals, such as the physics of light, Monte-Carlo integration, rendering equations and tone mapping / colour output are all included. As mentioned, nearly all the GI algorithms use one or more of these base theories - so to have them all explained in one book is a useful resource, and having read the text you will be more than capable of attempting any GI algorithm currently in favor.

Presentation

The presentation of this book is in tune with the other A.K. Peters texts, which are in general better than most of they're kind. The actual physical dimensions of the book are relatively small - each page not being much bigger than A5 in size, because of this white-space is a bit of a premium. Thankfully for us, it is used well and the text is never too dense, and enough spacing is given around the mathematical derivations/equations. Many sections are rounded off by a good use of diagrams (mostly black and white). For reference there is a short colour plate section towards the middle. A sample CD with some larger colour plates would have been beneficial as the often tiny images used in this book really do not do the 'real' image justice. Noticing many of the finer points at various states in the GI process would also greatly benefit from being large enough to examine without a magnifying glass!

In Conclusion

For the more advanced graphics programmers, this is a very thorough and detailed coverage of a complicated field. It is almost contradictory to say that there can be a 'simple book on global illumination', yet the authors of this book do a good job of bringing the subject down to a level that is comprehendible by normal human beings. 

However, it's not much of an introductory text; beginners will certainly pick up useful knowledge but it'd help you greatly to have at least a rough idea of what Global Illumination is before you pick this up in the shops.

Good Things Bad Things
• Does a good job of making a complex subject understandable • Still a very complicated book to read, you must be competent with maths/graphics
• Good page layout and presentation • Some of the images could do with being bigger
• Descriptions complemented with sufficient number of diagrams and images • A better discussion of implementing GI algorithms would be beneficial
• Good overview of the whole theory, yet still specific enough in places to be useful  
• Rewards are worth the extra effort required  

 

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