Tuesday, February 17, 2009

finally done and new beginnings.

Wow, I just came to realize how horrendously bad the text editor on blogspot is. 

Anyways, I've wasted enough time on Quadrion's SSAO implementation that I'm pleased to say I'm finally not messing with it anymore. This isn't to say that it's done...just that I'm not messing with it anymore. Looking at the original technique's description and many other takes on SSAO, I found that some of the implementations out there except for the original Crytek implementation are much too black on white (Eg: Edge highlight with no hint of subtle surface occlusion). One of my earlier implementations preserved the subtler surface occlusion details but had the drawback that many surfaces were giving false occlusion, which in some cases looks good.

So the result is a super low frequency approach that relies heavily on a seperable two pass blur w/ bilateral filter which attempts to preserve edges as best as possible. The primary issue was the lack of contrast in the resultant SSAO term. It simply didnt show up in the final color pass. So the best solution here turned out to be the simplest one and it's just a power ramp constrained by surface normal coherence between the original and distributed sampling points.

So the intensity is naively jacked up based on the average angular deviation there. Granted this isn't based entirely on physical accuracy, but it looks good enough. This makes the final term "contrastey" enough to be used in the final color composite without appearing to be an edge highlighter.

I also opted out of the tight sampling radius for the softer, gentler effect of the large sampling radius.

In other news, we've teamed up with another company which will use Quadrion Engine on one of their up and coming titles which we hope will be ready in time for IGF. Crunch crunch crunch.

I've posted some shots of the new effect at my photobucket.
http://i119.photobucket.com/albums/o121/qphalcyon
SSAO Raw#3