Hello everyone! For the past half a year I’ve been experimenting with various approaches to screen space ambient occlusion. From every idea and algorithm that I toyed with, I took the best and learned from the worst. It’s been more of a hobby than anything to me at the time. However, recently it finally started to shape into a version that I’m satisfied with, both in terms of quality and performance. I’ll let you form your own opinion, though…
Now, what else could I pick as a reference than the next-gen AAA standard, NVIDIA ShadowWorks HBAO+?
The detail combined with the very wide radius produces truly astounding results. However, on my 2 year old laptop GPU, it takes horrendous 10.31 ms, double that with per-sample AO turned on. Feel free to download it from the link above and see how well it runs on your machine.
Anyway, here is (almost) the same scene recreated in Unity, using OmniAO:
Let me point out the major differences: It runs on average at 4.52 ms using the current (quite high) settings, more than twice as fast as HBAO+! If that still sounds too high for you, note that this is an early, not very optimized version. Half resolution mode will also drop the cost significantly.
Quality-wise, it is based on a different algorithm (Alchemy AO). The shadowing tends to be softer and in my opinion more natural than HBAO. On the other hand, it’s currently missing a secondary detail pass (the dark sharp outlines). It is definitely coming though, as it’s useful when you want the details of your assets to really pop.
Amongst other traits planned like high customizability and adaptability, as well as zero shader keyword usage, is the focus on correct application of the AO to the scene, respecting lighting, gamma correction and fog.
As for the release date, my guess is a month or two. I’ll be unfortunately quite busy in the upcoming weeks.
So that’s it for now. I’d love to hear every one of your opinions, questions and suggestions.
Dolkar