I have just added support for directional lights on my branch. Using more than one “sun” light may sound weird, but that’s actually how you transform environment maps in a collection of point lights, as each pixel ideally represents an infinitely distant illumination source.
So I couldn’t resist going back to my preliminary tests, but this time running them with the actual code! Here’s Suzanne again under the Eucalyptus Grove light probe:
Please note that the AO image is there just to give a very rough feeling of how the two could compare — of course energy should be matched more carefully and parameters could be tuned better. Comparison with approximate AO would be useful as well.
Here’s another test using a hand-painted environment map:
In both tests the average cut size (the number of lights actually evaluated per pixel) is pretty low — see how dark the false color images appear. On the other hand the shadowing doesn’t look entirely convincing; still, it looks like a good starting point to me!
All images were rendered at OSA 5.


Lightcuts are looking awesome, the results are already really interesting
However there are some noticable banding on your pictures. I guess you need to add even more lights -> if you want to sample a sphere every 1 degree² you need about 64800 samples. With your sample rate it’s about 1 sample for 2.57 degree².
Because the shadows used are sharp, there will be banding even if the envmap is continuous. However if the envmap is irregular, it could give better results compared to other methods.
I wonder if it’s possible to do some sort of softshadowing.
i just made some tests, and one way to improve the results is to randomise a little the lamp locations
Here is a simple test with a strong sunlight and 8k+ pointlights for ambiant lighting. The strong sunlight makes the render a lot faster
But there seems to be antialiasing problems with the shadows.
The link got removed in the previous post
http://img2.freeimagehosting.net/uploads/1e7fcd08ae.png
Thanks anon for your comments and tests. As for banding: I don’t think it depends on the number of lights, because if you take the time to render them through the usual path, it looks better. It seems to be an error on my side, I am looking into it, stay tuned.
Regarding the “strong sunlight”: yes, shadows are single sampled, thus the ugly lack of antialiasing. This works when a large number of faint lights cast shadows together, it works less if you have a “strong sun”. I am thinking about adding a special case for that, or I could transform a “strong sun” in a small collection of nearby “fainter suns”… Anyway I’m aware of the problem and I will cope with it in some way.
Thanks again for your tests!