• Advertisement
Sign in to follow this  

Combining Voxel Cone Traced AO and Indirect Illumination

Recommended Posts

To avoid the light leaking slightly in Voxel Cone Traced Indirect Illumination, Voxel Cone Traced AO can apparently be added. You get the AO even for free while tracing cones. But how does one combine this with the calculated indirect radiance? Is this just a multiplication?

AO GI and Voxel Cone Tracing GI seem just like two unrelated GI approximations. Furthermore, visibility is already taken into account while computing the indirect radiance, so how does an additional averaged visibility fit in?

Share this post


Link to post
Share on other sites
Advertisement

What you get from Voxel GI diffuse part should be a color and alpha accumulation. But color was already premultiplied with 1-alpha (occlusion) for each cone marching step, so no further occlusion should be accounted for that. This is your indirect lighting contribution, you just add it to the direct light part and you have global illumination.

But you also gathered alpha when doing cone marching, and the average alpha at the end gives you the ambient occlusion factor as occlusion = 1 - alpha. You don't have to use it, but you can. What I mean is with global illumination turned on, you should turn off the constant ambient light factor, but in cases when you want to have it, you can multiply it with the ambient occlusion part. You can also use a light weight Voxel GI only storing 1 bit per voxel (voxel is empty or full) and only gather the occlusion part and multiply your constant ambient factor with it.

At least that's how I remember doing it.

Share this post


Link to post
Share on other sites
Posted (edited)

More precisely, I was actually wondering what the difference is between:

Quote

When filtering mip map directionally from the leaf node, normal direction is not taken into account, which results in more light leaking for thin objects as below. And this artifact can be hidded slightly with the AO value calculated in cone tracing:

  • "light leak through thin geometry" (image)
  • "apply the AO can only hide the leaking a bit" (image)

 

at http://simonstechblog.blogspot.be/2013/01/implementing-voxel-cone-tracing.html

I have no idea why the author applies AO to the direct radiance. But apart from that I do not get the difference. Apparently, an AO strength factor is enabled; whatever that means?

36 minutes ago, turanszkij said:

What you get from Voxel GI diffuse part should be a color and alpha accumulation. But color was already premultiplied with 1-alpha (occlusion) for each cone marching step, so no further occlusion should be accounted for that. This is your indirect lighting contribution, you just add it to the direct light part and you have global illumination.

Good point. Though, I did not consider this as AO, since it is just AO per cone (it nearly is a visibility itself for small cones) instead of full AO over the cosine-weighted hemisphere.

Edited by matt77hias

Share this post


Link to post
Share on other sites

For me using AO significantly increases detail and looks better. Although it's physically wrong, it comes closer to ground truth. 

With higher levels of detail (think of super high resolution voxels) i would not need it, but with practical settings its visually a win.

I don't use voxels or cone tracing, but like you i get AO for free. So maybe you can turn it to an advantage as well and make it an artistic choice. I guess the author of that article used AO for similar reasons.

Share this post


Link to post
Share on other sites
Posted (edited)
2 hours ago, JoeJ said:

For me using AO significantly increases detail and looks better. Although it's physically wrong, it comes closer to ground truth. 

With higher levels of detail (think of super high resolution voxels) i would not need it, but with practical settings its visually a win.

I don't use voxels or cone tracing, but like you i get AO for free. So maybe you can turn it to an advantage as well and make it an artistic choice. I guess the author of that article used AO for similar reasons.

But what does he actually do with the AO, multiply it with the total indirect radiance?

How do you choose your max distance in your AO computation (which you get for free)? (I rather use a constant than a tweakable parameter :P)

Edited by matt77hias

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Advertisement