Thanks for all the additional pointers.

I'll have to have a read of all this before I write the real renderer. At the moment, all I have is a bunch of code thats serving as a test bed, will need to try out some of the suggestions and see which ones fit with what we are aiming to achieve.