Volumetric Ambient Occlusion Image Effect

Volumetric Ambient Occlusion


Download Demo View on Asset Store User Manual

Volumetric Ambient Occlusion (VAO) provides additional level of visual quality by simulating soft ambient light shadows. It accentuates local geometric detail and produces shadows by nearby occluding surfaces (in the corners, cracks, holes, rough surfaces etc.). Resulting scenes have more depth and appear more realistic.

Combining classic screen-space ambient occlusion (SSAO) algorithm with a more physically based approach lets us achieve better visual quality and performance compared to classic SSAO.

Features

  • High performance and visual quality.
  • Plugin is compatible with all Unity rendering paths (Forward, Deferred and Legacy) and anti-aliasing.
  • Implemented as image effect attached to camera.
  • Easy to control - no magic variables (such as Bias).
  • Color bleed option
  • Single Pass Stereo Rendering Support
  • Not prone to self-intersection issues.
  • Compatible with Unity 5.3 and higher.
  • Plugin is not tested on mobile devices.

See user manual or contact us at projectwilberforce@gmail.com for additional support.

Screenshots





Changelog
1.1

  • Made compatible with Unity 5.4.

1.2

  • More quality options
  • Enabled downsampling
  • Color Tint Mode

1.3

  • Luminance Sensitivity
  • Improved Sample sets

1.4

  • Free Demo
  • Color Bleed
  • Presence Control
  • Speed Boost
  • Single Pass Stereo Rendering support for VR

1.5

  • Adaptive Sampling
  • Downsampled Pre-pass
  • Improved Sample sets #2

1.6

  • Unity Post-processing stack compatibility
  • Command buffer implementation
  • Enhanced Blur
4 Likes

Version 1.2
More Quality Options - we added more quality settings - users can now select from 4, 8, 16, 32 or 64 samples, with even the lowest setting providing good visual result

Downsampling - option to lower the resolution of computed occlusion = performance boost at the cost of visual quality (be sure to tweak the quality setting first before enabling this)

Color Tint Mode - gives you the option to change the color of the occlusion. Used to get better control of how the final scene looks - for example choosing a bluish color for the shadows when using yellow lighting.

Version 1.3
Luminance Sensitivity - you can now control how are the bright surfaces occluded. Can also be used in combination with downsampling option to reduce the most visible artifacts caused by occlusion texture size reduction.

Better sample sets - Much better visual quality with improved performance. Effect produces reasonable results with as low as 8 samples (Low quality).

Hi. This seems like an interesting AO solution. Do you know if it works in VR at all? Does it function with Unity’s Single Pass Stereo feature?

Hello,
unfortunately, we don’t have access to any VR device so we can’t 100% confirm. However it should work on most of them (except Gear VR and other similar mobile devices, as they are not powerful enough).
The Ambient Occlusion algorithm is computed solely in fragment shader which is unaffected by the Single Pass Stereo feature - so it will be computed once per eye. This is common for all Screen Space algorithms.
The plugin has its own quality settings (like downsampling) to gain performance.

I looked at a couple other AO shaders and I think I like the look of yours the best. My project is VR (Vive) so I can give you feedback on the results and let you know if there are any issues. I’d like to use this throughout my project and hopefully balance any performance hits with a in-game quality slider or presets.

I’m finishing up some assets and later today I’ll try this out.

Good to hear that, looking forward to your feedback :slight_smile:

Hi!!
Is VAO the same as VXAO ?
Like this VXAO: Voxel Ambient Occlusion | NVIDIA Developer

1 Like

Hi,

VXAO and our VAO are different solutions. While NVidia’s VXAO works with world space representation of the scene, our VAO takes just screen space data available in G-Buffer into account (just like clasical SSAO, HBAO and others).

However, thanks to finely tuned algorithm and volumetric approach, it minimizes halos, blurriness, works well on screen borders and is as fast or faster than SSAO/HBAO.

Also take a look at https://projectwilberforce.github.io/blog/VAO-1-3-Released for a little more technical description.

Project Wilberforce Team

Version 1.4 has been released!
Free Demo - Try it out before you buy it. Demo includes all features of the full version.

Color Bleed - Now in addition to ambient occlusion, nearby surfaces “bleed” their color onto each other.

Presence - New option that lets you better control the intensity of the occlusion.

Speed Boost - Experimental feature that speeds up the calculation (especially on higher quality settings and screen resolutions)

Further Optimizations - Another batch of tweaks to deliver better speed and quality.

3 Likes

Just wanted to stop by and say that I tested it today, and this is not currently working with Single-Pass Stereo. When you enable it you get a messed up display where it shows both ‘eyes’ on the screen at once. Here’s a screenshot:

We are currently working on supporting Single-Pass Stereo. We have a working development version. Please send us an email to projectwilberforce@gmail.com and we can send it to you for testing.

Version 1.4.1 has been released!

:hushed: We are VR ready!

Single Pass Stereo Render - As of now VAO supports VR devices including the SPSR option

Currently working on adaptive sampling - optimization scheme that lowers the quality for more distant geometry - idea is to progressively lower the quality but makes it visually imperceptible. Currently getting almost double the performance at the cost of very little detail loss (not noticeable on textured scenes)

measurements were run on nVidia GTX 970

feedback is welcome

1 Like

Version 1.5 has been released!

:eyes: Huge performance optimizations!

Adaptive Sampling - Automatically uses less samples further from camera
Downsampled Pre-pass - Less samples on less occluded areas
Newer, better sample sets - Better visual quality with less samples

Working on improving the colorbleed part of the effect. Currently trying to supress ‘self-bleed’ - see that in the new version the white specular color is still visible on the teapot.

2 Likes

I would to be able to bake these occlusion to a lightmap texture would that be possible?

No, not at the moment, sorry. I assume you’re asking because of mobile platforms? Our priority at the moment is optimizing the speed of the dynamic effect. If we end up doing baking ao textures in the future it would be as a separate tool.

Ok so please be gentle with me…Renderers/Shaders is one area I have a trouble understanding. I have started developing a game for the HTC Vive VR headset. Currently using The Lab Renderer that Valve has released. It seems to do pretty well, and wondering if this could be a replacement for it. If so, what are the benefits? One issue I think the Lab Renderer has is that it does not work with the Unity Terrain renderer properly. Do you have any insight? If I can get a better and more versatile solution, this would be money well spent in my view. Thanks!

No, this is not a standalone renderer but a post-process image effect - which means that it adds additional step that is put onto whatever your renderer of choice outputs. In the case of this effect it’s ambient occlusion (shadows along the creases), but a wide variety of effects can be done in post-process - blurs, blooms, god-rays, color corrections etc. Downside is that every additional effect you add to your project will cost you some computation time per frame so you have to balance visual quality with performance.

1 Like