The Volume Ambient Occlusion SOP generates the ambient occlusion field of the provided density field. This is useful to accelerate cloud rendering where multiple scattering can be approximated by remapping the scatter field at render time from dark values to bright values. This provides an efficient solution for rendering clouds, as you are able to have artistic control without having to understand the physics behind the computation.
It lets you compute the ambient occlusion of a density grid and use the occlusion information to remap to emission at render time to fake multiple scattering. The baked ambient occlusion doesn’t have to be tied to a specific light source, which allows you to rotate the light or the volume without having to re-bake anything.
This node supports both VDB and volumes, which will provide different results. OpenVBD renders with sparse representation, and only computes the ambient occlusion on the voxels containing density. Volumes will fill the whole domain with ambient occlusion formation. This is not required for cloud rendering, but there could be other case where this is useful.
The ambient occlusion is calculated using cone marching, as opposed to the traditional ray marching method. They produce the same results, but the cone marching method is more efficient. Cone marching sends fewer samples at a lower resolution, as opposed to the ray marching method which requires thousands of rays to approximate the integral of the cone defined by the dotted lines.
The following illustrates the results between the two techniques. If you send only a few rays per voxel, you will end up with artifacts using the ray marching method. Whereas cone marching will produce smoother results without any artifacts almost 10 times faster.
For more information, see the Volume Ambient Occlusion SOP page.