SSAO is a technique that was developed for the PC game Crysis in 2007. Iíve read papers published from Sigraph and made a Fusion plug-in that utilizes the technique the developers of Crysis invented. The technique is about how to extract a fake ambient occlusion out of a Z-depth pass.
The tool takes a specified amount of samples around each pixel, usually a 10 by 10 matrix and compares the depth with the current pixel to calculate occluding pixels. Furthermore Iíve implemented a depth to normals algorithm which is then used to calculate the SSAO.
The user can specify in the plug-in whether the SSAO should be calculated based on supplied normals (in NX-, NY- and NZ buffer) or calculated normals. This plug-in is currently under development and is highly technical and requires a lot of tweaking to get desired results.
Input a depth pass to the SSAO filter (stored in the Z channel) and it will return normals and screen space ambient occlusion in the RGB(normals) and A(SSAO) channels, the SSAO can be rendered based on either calculated or supplied normals, were supplied will give you best results. This is still a work in progress so don't expect production quality results.. : )
The plugin is multi-threaded and compiled for 32bit/x86.
Make sure you run atleast Fusion 5.3.55 with this one. : )
matrix: This sets the grid that is being sampled around each pixel.
amount: The amount of occlusion to add.
small depth: If the depth is less than this no occlusion is added.
depth threshold: The distance in depth that the filer looks in.
normals angle control: Controls what angle diffrence that should be allowed, in order to avoid occlusion on flat surfaces.
normals z control: Boosts the Z calculation for normals
christoffer (at) hulusjo.se
Give it a try and let me know if you have any suggestions or feedback.