Skip to content
View Categories

Radiant GI: Description and Settings

Global Illumination refers to the indirect / diffuse lighting caused by the bounces of the light on any surface. In Unity, all lights (directional, spot, point lights) are called “direct lighting” and they can illuminate surfaces that’re directly reachable. Indirect lighting refers to the lighting that’s reflected by those objects and that can also add some lighting to the scene.

Radiant GI computes and adds that indirect/diffuse lighting in real-time producing more natural/realistic lighting in your scenes. It’s important to understand how to setup and configure the settings properly, as indirect/diffuse lighting can be subtle but convenient, to give more realism to your scene.

Radiant GI is a post-processing effect created for the built-in and Universal Rendering Pipeline. It can use the forward or deferred rendering path; however, it’s strongly encouraged to use deferred rendering as it produces more realistic results. Important: make sure you set the same rendering path as in the URP asset!

The effect is designed as a render feature (check the previous setup section) and then, the settings are specified in a post-processing volume inside your scene. This means that you can use the effect as a global volume (affects the entire scene) or only in certain areas (adding the effect to specific post processing volumes):

The settings that can be configured in Radiant GI are:

General Settings

  • Indirect Light Intensity: the global intensity of the effect. Please note that indirect lighting should be subtle and a complement to regular lighting as well as baked lighting. This means that you should not use a intensity greater than 2 for example. Good values are 0.3, 0.5 or 1 (this will depend on your scene).
  • Distance Attenuation: light intensity reduces by the square of the distance. To give more artistic control, we added this setting, so you can specify the attenuation behaviour. A value of 0 means there’s no attenuation. A value of 1 means the indirect intensity will be reduced by the square of the distance to the source light.
  • One Extra Bounce: when enabled, Radiant will also use the indirect lighting computed in the previous frame, simulating an additional bounce of the light into the scene. This option is not expensive.
  • Max Source Brightness: let you clamp or limit the brightness from the reflecting surfaces. Very bright spots like emissive pixels can add lot of noise. You can reduce the overall noise by setting a very low value to Max Source Brightness, like 0.2, and increasing the Indirect Intensity value. That will create a more uniform indirect contribution for the whole picture.
  • Normal Map Influence: enhances lighting on surfaces with normal maps.
  • Luma Influence (only applies in forward rendering path): uses pixel luma to enhance results by adding variety to the effect based on the perceptual brigthness. Set this value to 0 to disable this feature.
  • Near Field Obscurance: darkens surfaces based on occlusion. Produces an effect similar to SSAO with a wide radius adding subtle shadows that are consistent with the indirect illumination. It’s very fast as it’s integrated in the GI pass.
  • Virtual Emitters: simulate off-screen or hidden light sources by injecting indirect lighting into the scene, enhancing realism in areas not directly lit by visible lights. They act as emissive proxies, allowing consistent global illumination even when the actual emitter is outside the camera view or occluded.
  • Organic Light (URP only): this option injects procedural lighting into g-buffers which can also be source for indirect light, producing more natural and interesting environment lighting.

Quality

  • Ray Count: by default, a single ray is computed per pixel in the screen. However, you choose to use up to 4 rays per pixel. Each additional ray will add considerable overhead to the processing. Usually, a single ray is enough to create a compelling effect. Only use 2 or more rays on higher-end GPU cards.
  • Max Distance: the maximum distance where the indirect light can reach. For accuracy, try to reduce this value as much as possible (for example, make sure it just covers the room where the volume is).
  • Max Samples: let you specify the maximum number of samples along the ray-march loop. This is a max number and intended to avoid very expensive loops. Values of 24 or 32 usually gives best results.
  • Jittering: adds a bit of randomization to the ray-march step size to reduce banding. Useful when using low sample count.
  • Thickness: the thickness or depth tolerance is used to determine when the ray hits a surface. This value represents the minimum distance of the ray-march position to a nearby surface to consider a hit. Values of 0.3 to 1 are usually the best.
  • Binary Search: when enabled, the algorithm will perform a refinement of the hit position, producing more accurate results. This option will add a bit of overhead to the ray-march loop.
  • Smoothing: Adds extra blur passes.
  • Temporal Filter: Uses motion vectors to blend into a history buffer to reduce flickering. Only applies in play mode.

Fallbacks

  • Reuse Rays: the asset will check if the ray from previous frame succeeded and reuse it. A value of 0 disables this feature, while a greater value will increase the intensity of old ray hits. Please note that this option can introduce ghosting/smearing in moving objects, so try to keep it low.
  • Use Reflection Probes: use nearby reflection probes when rays miss. In forward/deferred, Radiant uses the nearest 2 probes to the rendering camera. In forward+/deferred+ Radiant uses probe atlas automatically.
  • Reflective Shadow Map: this is a technique that renders the scene from the directional light point of view. It’s quite expensive if the directional light rotates continuously. Check dedicated section for details.

Performance

  • Raytracer Accuracy: by reducing the raytracer accuracy, performance can be improved. Technically this option is effectively downscaling the input depth buffer to improve GPU cache efficiency.
  • Downsampling: let you downscale the input image affecting all render passes, so the entire effect execution is faster (in exchange of quality of course).

Artistic Controls

  • Brightness Threshold: determines the minimum brightness value of a pixel to be considered as indirect source for lighting. Every pixel should cast indirect light (even if it’s very dim) although you may want to limit this effect to certain bright pixels only using this setting.
  • Maximum Brightness: clamps the maximum brightness of the resulting GI contribution. This setting let you avoid burning pixels with too much lighting.
  • Specular Contribution: determines amount of GI added to metallic/shiny surfaces, reducing overexposition.
  • Source Brightness: Brightness of the original image.
  • GI Weight: Increaes final GI contribution vs source color pixel.
  • Saturation: adjusts the color saturation of the computed GI. A value of 0 makes the GI grayscale.
  • Near Camera Attenuation: Attenuates GI brightness from nearby surfaces.
  • Limit to Volume Bounds: only applies GI within the boundaries of the current volume. Useful to restrict the GI to interior rooms for example, when there’re windows and you don’t want the GI to be computed outside.
  • Stencil Check: enabling this option will activate the stencil mask which avoids GI from being applied to specific pixels on the screen. This can be used to avoid GI over certain objects like UI, FPS weapons or any other object that renders also using stencil.

Debug 

  • Show In Edit More: renders the effect while not in play mode. Currently, Temporal Reprojection is only available in play mode so the result can be quite noisy.
  • Show In Scene View: Show Radiant Global Illumination in scene view.
  • Debug View: useful to inspect the different buffers used by the effect.
  • Compare Mode: let you compare the impact of the effect and the current settings by showing a side-by-side or split screen view of your scene.
Back To Top
Mostrar formularion