HTrace: Ambient Occlusion [RELEASED]

HTrace: Ambient Occlusion

Grab your copy on the Asset Store and join our Discord and Twitter to get more news about upcoming features and updates!

HDRP Version | BIRP Version | URP version

Useful Links:
Documentation
Comparisons
FAQ

HTrace: Ambient Occlusion combines three of the most popular ambient occlusion techniques into a single asset, offering a highly scalable and adaptive system for AO computation.

Includes three AO modes:

:black_small_square: SSAO (Screen-Space Ambient Occlusion) – A lightweight and extremely fast method for occlusion gathering. It doesn’t require a denoiser and produces zero temporal lag.

:black_small_square: GTAO (Ground-Truth Ambient Occlusion) – Built on the latest advancements in ambient occlusion research, this technique works seamlessly with or without a denoiser, delivering the best possible quality in screen-space.

:black_small_square: RTAO (Ray-Traced Ambient Occlusion) – The most accurate occlusion method, utilizing hardware ray tracing for uncompromised quality and scalable performance.

Main Features:

- Scalability: choose between three different AO modes depending on your performance target or hardware requirements. Ranging from extremely fast SSAO to highly accurate RTAO, HTrace offers broad scalability options and exposes various parameters to fine-tune the effect to your needs.

- Cutting Edge Screen Tracing: GTAO mode utilizes an efficient horizon-based traversal algorithm to gather multiple samples in a single frame. Augmented with recent research on Visibility Bitmasks, it delivers accurate occlusion evaluation, even for complex surfaces, bridging the gap with its ray-traced counterpart.

- Real-Time Ray-Tracing: RTAO mode leverages contemporary hardware-accelerated ray tracing to achieve physically accurate results. With numerous performance controls, it efficiently computes high-quality occlusion without the typical performance cost associated with ray tracing.

- Sharp Upscaling: features an adaptive Lanczos filter, inspired by FSR technology and enhanced with bilateral weights, to interpolate half-resolution occlusion results without losing important details.

- Advanced Denoising: a modern denoising pipeline with configurable temporal and spatial stages. It includes motion rejection mechanisms to prevent ghosting and enables responsive temporal accumulation, coupled with reprojection filters that ensure sharp images during camera motion.

- Open Code: feel free to modify it. If you have any questions on how any part of it works you can always reach out to us on Discord.

- VR Support [HDRP Only]: single-pass VR is supported for all three occlusion modes.

2 Likes

Any timeline for render graph support?

Nice to finally see some RT in URP assets tho!

For me RTAO and RT Reflections has always been the most incomparable in quality to screen space methods.

EDIT: Also doesn’t URP support specular occlusion at a shader level? I know like with HBAO it can be iffy to keep the shader variant tho.

EDIT2: Another question how is enabling this implemented?
Is it configured by volume or by render feature? Or is it a component on the camera?

This is important cause of how streamlined making builds can be when dealing with multiple platforms. If it’s volume or render feature it’s easy to have entirely different configurations per platform. Without having to adjust scene stuff every build.

EDIT3: I explain what i mean here

Already in progress, can’t give ETA, but soon!

Are you asking if URP applies specular occlusion from ambient occlusion in per-object shaders (like HDRP does) ?

This is a component (not on a camera, though) that controls render feature’s settings. So I don’t think it’s possible to create different presets or configurations the way you described it. But thank you for letting us know about this approach, we’ll think what we can do to make it possible!

1 Like

I’m saying I know it does, but I saw it’s not supported in URP. There’s a shader level indirectAO and directAO that is used to mask specular currently with the native SSAO.

Ah, sorry. Yes, I checked, and you’re right, our AO (all three modes) indeed apply specular occlusion, because they are passed through the native AO buffer, so everything that works for the native SSAO works for ours too. I’ll correct the docs then.

1 Like

Is there a possibility we could apply GTAO close, and SSAO in the distance for large-scale SSAO?

ssao

Hi! No, it’s not possible to combine different AO modes like this. I’ll log it for future consideration though.

Your link leads to sky occlusion implementation in Skyrim. Sky Occlusion in relation to our AO has been discussed here: Discord and then here Discord. TLDR: not practical in screen-space, possible by extending RTAO radius.

1 Like