HBAO – Ambient Occlusion

Last year I looked at SSAO techniques (Screen Space Ambient Occlusion) and a fellow game developer mentioned HBAO to me (Horizon Based Ambient Occlusion). As post processing screen based effects are often the most rewarding to work on I thought I would investigate HBAO compared to SSAO. I found that there was a significant improvement – almost to the point that the HBAO first pass rendering is good enough – it may not actually need the blurring shader pass that typically follows SSAO.

I tested on static geometry with a stable camera:

hbao – no blur
hbao – with blur

I had problems with SSAO in that when characters or the player camera is in motion across geometry the SSAO rendering would be very noisy and ‘swim’, HBAO however is very stable. A test on a character confirmed this.

Isolated HBAO on a character without and with blur
character on left has no HBAO, on the right has blurred HBAO applied

[note this is a ‘time travel’ post – with a retro fitted blog posting date matching the approximate time the work was completed]