ARK.KRA - VBAO - Visibility Bitmask Ambient Occlusion

| DOCUMENTATION |

VBAO is a modernized and highly optimized evolution of GTAO, It provides a massive upgrade in visual quality without the usual performance drop.
The standard Unreal Engine 5 GTAO takes about 3ms at 1080p, VBAO drops this cost to just 0.6ms, giving you highly accurate occlusion at basic SSAO speeds.


Key Features

  • High Performance
    Runs at 0.6ms at 1080p saving valuable frame time.

  • Native Resolution
    Runs without downscaling to capture tiny geometric details and provide extremely sharp contact shadows.

  • Physically Accurate
    The bitmask algorithm calculates actual object thickness.
    This removes the flat look of older methods and creates shadows almost identical to Ray Tracing AO.

  • Minimal Artifacts
    Significantly reduces distracting halo artifacts common in other algorithms.

  • Color Bleeding
    Features multiple bounce approximation to tint ambient shadows based on the colors of nearby surfaces.

  • Lumen Ready
    Works perfectly with or without Lumen enabled.

1 Like

Im interested on this, actually using GTAO , and for now discarded DFAO due artifacts.

I saw your render comparisions, but they are “UE SSAO”, will be great comparision with GTAO and DFAO. Also some video to see how it looks in movement to check possible noise, ghosting or artifacts.

Can your VBAO implementation fix the dark area in the chassis-wheel cavity?

That image is with GTAO. DFAO fixes that problem (But artifacts & ghosting).

Can this VBAO fix that?

-

EDIT: In documentation says by default quality is 2. is that the 0.6ms you mention about perfomance and the same quality in the screenshots? Just to be sure. And how much ms for quality4 ¿? Will be great if you update the screenshots and the perfomance to be clear what expect in each AO quality mode.

2 Likes

Hey there! Let’s check it out.

And here are some shots specifically for your issue:

I’ll leave the verdict up to you!

And i skipped DFAO because it’s in a different category.
DFAO is for macro occlusion, while my plugin is a screen space solution for micro occlusion.

Also, during these tests I noticed a minor offset bug around the wheel spokes.
I’ll fix that in an upcoming update!

About noise and ghosting: There is practically zero ghosting because VBAO doesn’t use its own temporal accumulation for denoising. It relies entirely on the engine built in TAA, so whether you use that or not is totally up to you.
As for noise, it mostly depends on how you configure it. If you crank up the intensity while using low quality settings, the image will get pretty noisy. However, if you use higher quality settings with a reasonable intensity level, the noise is barely noticeable.
The default settings are specifically tuned to keep noise to a minimum!

Regarding the screenshots/documentation: all screenshots use default VBAO and SSAO settings, just with intensity set to 1.0 and TAA enabled.

Regarding Performance: Yes, the ~0.6ms was captured on my RTX 2060 at 1080p using the default plugin settings. Keep in mind this is just a general baseline, actual performance heavily depends on resolution, scene complexity, quality settings, and your specific GPU.
As a rough rule of thumb, if GTAO takes less than 3ms on your machine, VBAO will run proportionally faster for you.

Quality 4 is really meant for cinematics rather than real time gameplay.
But to give you a clear breakdown across all modes
(tested on an RTX 2060, running in game at 1080p with r.ScreenPercentage 100):

  • Quality 1 = ~0.45ms

  • Quality 2 = ~0.65ms

  • Quality 3 = ~0.85ms

  • Quality 4 = ~1.60ms

The plugin just launched, so I’m still fixing a few release bugs, but I will definitely add these ms timings to the documentation soon!) I also plan to upload a video comparison to my YouTube channel when I have some free time.

Hope this helps! Let me know if you have any more questions.

Hard to tell with that light/shadow that covers the chassis-wheel cavity, so screenshots are useless due all have black cavity.

Also the no perspective comparision with no shadow is with No AO, instead of GTAO.

In my capture the car is already under a shadow, and as you can see the tire treads have some light when they should be dark.

-

About VBAO, Ive been doing some research and found a GT-VBAO :

It says:
“The GT-VBAO method is a great improvement over VBAO and makes it more physically correct (ie: cosine weighted vs uniform sampling).”

Olivier Therrien (volfaze) is one of the authors of the paper you based, and he says improves:

And more recent ones by Mirko_Salm:

There are samples in shadertoy with unidirectional, bidirectional,etc…

Looking the results and what authours said, looks very promising, and close to raymarch fidelity.

Another guy improving GT-VBAO that may be interesting to check:

-

So, any chance to update your plugin to add GT-VBAO ?

From my research seems GT-VBAO can be half perfomance of VBAO, still even with that will go from 0.6 to 1.2 and from what creators says, less noise and more accurate, even match-close to RTAO.

Thats for unidirectional, for bidirectional seems can be same or higher than GTAO but can be tunned to be better perfomant.

So yeah, if you can improve the plugin for GT-VBAO you have here a buyer.

EDIT: There is lot of stuff about GT-VBAO and GT-VBGI in Shadertoy:

https://www.shadertoy.com/results?query=tag%3Dvbao

Ah, I get it now! You just want the tire to stop shining in the dark.
You actually don’t need a specific AO for this. No shading algorithm will completely mask the shine of a glossy tire. You can easily fix this by reducing the specular on the tire tread, either manually on the texture or by using a Fresnel node.
Check out the result below using a Fresnel node:

Regarding GT-VBAO, my plugin basically is one already! “GT” just stands for Ground Truth, meaning it is as physically correct as possible and very close to Path Tracing. As you can see in the screenshots, there is almost no difference between RTAO and VBAO. I originally tuned my VBAO to match path tracing closely without heavily sacrificing performance.

However, the authors you mentioned definitely have a couple of interesting heuristics and a better estimator that weights all bits before applying. That is exactly something I can add in the future!

1 Like

Just add fresnel that will brightent your wheels via view of angle
Omg,vasyanessi

Btw,very good plugin just bought it today. Ark.kra is very cool at graphics features. I love his assets.
Anybody that can’t do something with them,probably not very good at reading documantations gagaga

1 Like

Oh! i see thanks for the info! Still not darker as it should but guess in combination with VBAO should be good. Can you send me that fresnel fix via DM please? Not skilled in mats.

-

About the VBAO, then maybe rename to GT-VBAO to avoid confusion?.

Also if thats true, 0.6 for GT-VBAO is very good! And if you really have plans to improve the plugin like the authors mentioned i will say is a must then.

Let me know when you fix the offset issue to avoid light in the rim spokes.

1 Like

Sure thing! I’ll DM you a few screenshots of the setup.
Just keep in mind it’s a basic fix that might need some extra tweaking for your specific case.

As for the update, I’m already working on it. I’ll be fixing the offset issues and adding those new heuristics we discussed.

Stay tuned!

1 Like

Ok sounds great! I already purchased the plugin, probably tonight or tomorrow will test and will give my first impressions.

1 Like

Just tested VBAO:

  1. VBAO not appears in stat GPU. ¿? Using UE 5.7.4.

  2. Output Mode: 0, There is too much AO on vertical walls, like in your website comparision.
    With Output Mode: 1 = AO is more subtle on vertical walls, and adds on sites like Tire treads and rims to make dark and feel better.

  1. Quality noticiable from 1-2-3, from 3 to 4 cant notice, so i guess will set to 3.

Still i have to do comparision with RTAO and check the real perfomance, so please, let me know if there is any bug or what im missing to make VBAO appear on stat gpu. Debug mode also works great.

//

EDIT: WIth Quality 3 and OutputMode:1 for me is the most close to RTAO.

Still needs more dark in some areas, and less to none in others where you can see that grey shadow around which looks bad. Btw, overall looks good and improvement over SSAO and GTAO, unique left is check the perfomance.

1 Like

Hi! Just picked this up and wow. I just integrated VBAO and the depth it adds is incredible, there’s no going back to SSAO now! Review coming soon!

1 Like

In your case VBAO appears using “stat GPU” cvar to check perfomance?

Thanks for the feedback! Glad to hear Quality 3 and Output Mode 1 are working well for you.

About stat gpu, it looks like UE 5.7 changed how RDG interacts with it. But you can still get the exact numbers through Unreal Insights. Just set the Trace Destination to “File”, hit Start Trace for a second, and then stop it. You can open it right away from “Recent Traces”.

Once you are in the Timing Insights window, just type “vbao” in the search bar under the Timers tab. It will show you exactly how many ms the GPU is spending on it per frame.

1 Like

Hi! Thanks a lot, I’m really glad you like the results.
Looking forward to your review!

1 Like

A simply way is the console command profilegpu then search for VBAO

1 Like