This GI solution is based on voxel ray tracing and provides following effects:
Note: Current default configuration provides only diffuse GI, for specular we still need light probes. System may be used as AO add-on to light probes or may completely replace diffuse contribution of light probes.
The performance depends on which GI settings are used. Usually on Xbox One it takes 4-5 ms of GPU time and on good PC (GTX 780) it takes 2-3 ms (AO + Sun bounce, no point lights, low-spec mode). The fastest configuration is "AO only" mode, it provides large scale AO for the cost of about 2.5 ms on Xbox One.
GI settings are located in: RollupBar -> Environment -> Total illumination
In the editor UI every GI parameter has a tool tip containing a proper description.
Active
Activates voxel GI for the level
Injection multiplier
Modulates light injection (controls the intensity of bounce light)
Sky color multiplier
Controls amount of the sky light
This value may be multiplied with TOD fog color
Use TOD sky color
if non 0 - modulate sky light with TOD fog color (top)
Values between 0 and 1 controls the color saturation
Saturation
Controls color saturation of propagated light
Diffuse bias
Constant ambient value added to GI
Helps preventing completely black areas
If negative - modulate ambient with near range AO (prevents constant ambient in completely occluded indoor areas)
Diffuse cone width
Controls wideness of diffuse cones
Wider cones work faster but may cause over-occlusion and more light leaking
Narrow cones are slower and may bring more noise
Cone max length
Maximum length of the tracing rays (in meters)
Shorter rays work faster
Update geometry
When switched from OFF to ON - forces single complete re-voxelization of the scene
This is needed if terrain, brushes or vegetation were modified
Min node size
Smallest SVO node allowed to create during level voxelization
Smaller values helps getting more detailed lighting but may work slower and use more memory in pool
It may be necessary to increase VoxelPoolResolution in order to prevent running out of voxel pool
Skip non GI lights
Disable all lights except sun and lights marked to be used for GI
This mode ignores all local environment probes and ambient lights
Low spec mode
Set low spec mode
Values greater than 0 simplify shaders and scale down internal render targets
If set to -2 it will be initialized by value specified in sys_spec_Shading.cfg (on level load)
Use light probes
If enabled - environment probes lighting is multiplied with GI
If disabled - diffuse contribution of environment probes is replaced with GI
In modes 1-2 it enables usage of global env probe for sky light instead of TOD fog color
Voxelizaion LOD ratio
Controls distance LOD ratio for voxelization
Bigger value helps getting more detailed lighting at distance but may work slower and will use more memory in pool
It may be necessary to increase VoxelPoolResolution parameter in order to prevent running out of voxel pool
Voxel pool resolution
Size of volume textures (x,y,z dimensions) used for SVO data storage
Valid values are 128 and 256
Engine has to be restarted if this value was modified
Too big pool size may cause long stalls when some GI parameter was changed
SSAO amount
Allows to scale down SSAO (SSDO) amount and radius when GI is active
Objects max view distance
Voxelize only objects with maximum view distance greater than this value (only big and important objects)
If set to 0 - disable this check and also disable skipping of too small triangles
Changes are visible after full re-voxelization (click <Update geometry> or restart)
Tips and other parameters:
By default, the GI system released in 3.8.1 is actually only exposing a simplified sub-set of more advanced GI system, which supports features like multiple bounces and ray traced speculars. This advanced system is already in and available, but it is very experimental and is hidden by default. For unlocking advanced settings please enable Edit / Preferences / Experimental Features / Lighting / Total Illumination and then re-open the Environment settings. The description for advanced parameters may be found in the tool tips.
By default in basic mode 0 only opacity is voxelized. This allows very small memory allocations on GPU - about 16 MB. The bounced light is sampled directly from shadow maps (extended to RSM). Compute shaders are not used.
The advantages of mode 0 are:
The disadvantages:
Integration modes 1-2 use more memory for voxelization (at least 64 MB) - albedo, normals and several layers of radiance are voxelized together with opacity. The lighting is getting injected into voxelization, then it may be propagated (within the voxelization) and then we sample it during ray tracing pass.
Here you can see example of information stored in voxels: albedo colors, direct light injection and light propagation.
The advantages of this mode:
The disadvantages:
Tip: If you getting "Display driver stopped responding and has recovered" error message you can use this workaround from Microsoft.
For more information on Voxel-Based Global Illumination feature updates in CRYENGINE, please refer to the Appendix.