H-Trace: Global Illumination and Occlusion
Asset Store Link
Here’s our Discord and Twitter
H-Trace is a fully dynamic screen-space Global Illumination and Occlusion system that aims for accurate indirect lighting with detailed secondary shadows.
H-Trace system consists of three main parts:
- Global Illumination
- Ground Truth Ambient Occlusion
- Ground Truth Specular Occlusion
All three are rendered in real-time and computed in a single screen-tracing pass with no baking required.
MAIN FEATURES:
- Full integration into the rendering pipeline comes with both Forward and Deferred support, correct interaction with materials and other rendering features. GI can be picked up by Unity’s SSR and therefore bounced lighting is visible inside screen-space reflections. *
- Reflection Probe Fallback gathers data from all probes in the scene and reconstructs global illumination even when the primary source of lighting is obscured or outside the frame. An alternative fallback mode allows to specify a single custom reflection probe. Real-time reflection probes are supported as well.
- Real-Time Specular Occlusion correctly attenuates both SSR and cubemap reflections using Bent Normals & Cones generated in real-time. It can provide occlusion between separate and / or dynamic objects which is impossible with the traditional workflow that requires offline bent normal map baking. *
- Real-Time Ambient Occlusion uses the most advanced GTAO algorithm with multibounce approximation support and correct blending with the main GI effect. It brings up small details but avoids unrealistic over-occlusion.
- Emissive Lighting support makes it possible to illuminate parts of your scene using emissive materials and objects of any shape that can act as actual light sources and cast soft shadows. **
- Infinite light bounces are simulated through a feedback loop. Every frame gathers one more bounce of light.
- Accurate Thickness mode reconstructs true thickness of all visible objects and renders more accurate indirect shadows in comparison to using a single value as a common thickness denominator for the whole scene.
- Advanced Denoising algorithm includes temporal and spatial denoisers equipped with many features for noise reduction and detail preservation. It also supports self-stabilizing recurrent blur.
- Layer Mask allows to exclude objects from processing on a per-layer basis.
- Flexible performance control with multiple parameters helps to find the right balance between speed and quality. Resolution downscale using either checkerboard rendering or half-res output is also available.
SHORT FAQ:
FAQ
- Why does GI look too dark (weird shadows / occlusion) in the Scene window, but everything is okay in the Game window?
Change Scene Camera (not your main Camera) clipping settings. Especially try disabling / enabling the “Dynamic Clipping” checkbox.
- Why does GI look very bleak / dull and doesn’t produce a good color-bleeding effect?
Check scene reflections. If you’re seeing a strong blue / gray tint covering most of the objects making them look “wet” - it’s likely that this is the sky (environment) reflection leaking everywhere. Use reflection probes to avoid it. It’s recommended to take advantage of Proxy Volumes while setting up the reflection probes.
- How to see the actual GI impact on the scene in full strength?
First, make sure that all lights in the scene have shadowmaps enabled. Then make sure that the shadows are completely black. To achieve this, turn down all reflections (the easiest way to do this is to add an override called “Indirect Lighting Controller” and set the reflection multiplier to 0). Then enable GI.
- How to exclude an object from receiving GI?
Use the Layer Mask in H-Trace settings.
- How to exclude an object from contributing GI?
Switch the shader of this object to “Transparent” type. Transparent objects are not processed by GI.
The FAQ will be updated.
Additional Screenshots: