Realtime Global-Illumination (Beta)

Real-time global illumination (RTGI) is a technique used in computer graphics to simulate the lighting of a scene in real-time, meaning that the lighting changes dynamically as the scene and its objects move or change.

Global illumination refers to the way light interacts with the surfaces of objects in a scene. It takes into account the reflection and refraction of light as it bounces off surfaces and interacts with other objects and surfaces in the scene. Global illumination is important because it creates more realistic lighting in a scene, including soft shadows, ambient occlusion, and color bleeding.

It is a computationally-intensive process that requires significant processing power, but it allows for more realistic and immersive environments for the user. By providing a more accurate representation of lighting, RTGI can improve the overall visual quality of a scene and enhance the user experience.

We're currently in beta testing and integrated a first implementation for users. This version still has many limitations and misses some features of RTGI. Not supported is bouncing light rays and colored refraction and reflection.

Restrictions

Due to performance intensive computation RTGI is not suitable for every GPU.

Especially elder graphic cards having problems rendering scenes with RTGI because of low processing power.

Even that we offering the option to configure quality, ray-tracing is an expensive process and the more detailed RTGI is configured (level 1 - 6), the more expensive it will be.

NOTICE: Runtime Global Illumination is only available in Developer-Edition and in the commercial GAMEPACKAGE version. It is not supported in BASIC package!

Configuration

We've kept configuration simple in first stage.

So there are two places to configure your scene for global illumination: viewport and light sources.

TGorillaViewport

The first and important step is to activate global illumination in the TGorillaViewport instance of your scene.

Property Description
GlobalIllumDetail If this value is zero, global illumination is deactivated. Values between 1 and 6 activating RTGI. The higher this value is, the more detailed and more expensive raytracing will be. Most GPUs should support until level 5, but only newer onces will also support level 6.
GlobalIllumSoftnessA separate render pass softens the raytracing result. Especially useful to soften shadows. The higher the value is, the more soften the rendering becomes. Values between 0.0 and 5.0 are allowed.
ShadowStrengthDefines how intense/dark shadows will become. Default value is 0.4. Allowed values are between 0.0 and 10.0
ReflectionStrengthActivate reflections with values larger than zero. Allowed values are between 0.0 and 10.0

TGorillaLight

Because we also support light scattering in RTGI computation, it might be necessary to modify default settings.

It is recommended to use the TGorillaLight component instead of a TLight component in your scene.

WARNING: The default FMX light component does not support configuration of light-scattering.

To deactivate Light-Scattering for a specific light source, set ScatteringIntensity to a value less than 0.00000001.

GorillaLight1.ScatteringIntensity := 0.00000001;
Property Description
ScatteringIntensityLight scattering in global illumination rendering can be controlled for each light source separately. ScatteringIntensity defines how intense the light scattering will be mixed into the final image.
ScatteringExposureLight scattering ray exposure parameter
ScatteringDecayLight scattering ray decay parameter.
ScatteringDensityLight scattering ray density parameter.