Whilst I'm quite happy with the depth peeling approach my lightmapper currently uses it does suffer from precision issues in certain circumstances. Firstly, light leaks are very common and although I've found a solution, it wreaks havoc with thin double sided objects. Secondly, very large scenes containing small objects pose a problem as the resolution of the depth peel render target becomes too sparse to handle the smaller objects accurately.
I've recently been reading up on GPU raytracing so I thought I'd give it a go. To start with I've opted for the easiest thing I could think of which is ambient occlusion on a small scene with no ray acceleration structure. Here are the results...
The resulting AO map.
- 364 samples per pixel
- 1024x1024 AO map
- A whopping 62 polygons!
- Render time of roughly 10 seconds (A quick test in mental ray with 64 samples per pixel took roughly 1 minute)
It's an interesting start and I'm keen to see how it pans out.