r.Lumen.Visualize.MaxTraceDistance

r.Lumen.Visualize.MaxTraceDistance

#Overview

name: r.Lumen.Visualize.MaxTraceDistance

This variable is created as a Console Variable (cvar).

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of r.Lumen.Visualize.MaxTraceDistance is to control the maximum trace distance for Lumen visualization. This setting variable is primarily used for debugging and visualizing the Lumen global illumination system in Unreal Engine 5.

This setting variable is used in the Lumen subsystem, which is part of the rendering module in Unreal Engine 5. Specifically, it’s used in the visualization component of Lumen, as evidenced by its presence in the LumenVisualize.cpp file.

The value of this variable is set using an FAutoConsoleVariableRef, which allows it to be modified at runtime through the console. The default value is set to 100000 units.

The associated variable GVisualizeLumenSceneMaxTraceDistance directly interacts with r.Lumen.Visualize.MaxTraceDistance. They share the same value, with GVisualizeLumenSceneMaxTraceDistance being the actual variable used in the code to control the maximum trace distance.

Developers should be aware that this variable is specifically for visualization purposes and doesn’t affect the actual Lumen lighting calculations in the game. It’s a tool for debugging and inspecting the Lumen system’s behavior.

Best practices when using this variable include:

  1. Use it primarily for debugging and visualization purposes.
  2. Adjust the value to focus on specific areas of interest in the scene.
  3. Be aware that very large values might impact performance during visualization.
  4. Use in conjunction with other Lumen visualization tools for comprehensive debugging.

Regarding the associated variable GVisualizeLumenSceneMaxTraceDistance:

The purpose of GVisualizeLumenSceneMaxTraceDistance is to store the actual value used in the code for the maximum trace distance in Lumen visualization.

This variable is used directly in the Lumen visualization system, specifically in the SetupVisualizeParameters function, where it determines the MaxTraceDistance for visualization purposes.

The value of this variable is set by the r.Lumen.Visualize.MaxTraceDistance console variable through the FAutoConsoleVariableRef mechanism.

It interacts directly with the r.Lumen.Visualize.MaxTraceDistance console variable, effectively serving as its in-code representation.

Developers should be aware that modifying r.Lumen.Visualize.MaxTraceDistance will directly affect GVisualizeLumenSceneMaxTraceDistance.

Best practices for using this variable include:

  1. Avoid modifying it directly in code; instead, use the r.Lumen.Visualize.MaxTraceDistance console variable.
  2. Use it as a read-only variable in visualization code to respect the user-set or default maximum trace distance.
  3. Consider performance implications when working with very large values, especially in complex scenes.

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/Lumen/LumenVisualize.cpp:131

Scope: file

Source code excerpt:

float GVisualizeLumenSceneMaxTraceDistance = 100000;
FAutoConsoleVariableRef CVarVisualizeLumenSceneMaxTraceDistance(
	TEXT("r.Lumen.Visualize.MaxTraceDistance"),
	GVisualizeLumenSceneMaxTraceDistance,
	TEXT(""),
	ECVF_RenderThreadSafe
);

int32 GVisualizeLumenCardGenerationSurfels = 0;

#Associated Variable and Callsites

This variable is associated with another variable named GVisualizeLumenSceneMaxTraceDistance. They share the same value. See the following C++ source code.

#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/Lumen/LumenVisualize.cpp:129

Scope: file

Source code excerpt:

);

float GVisualizeLumenSceneMaxTraceDistance = 100000;
FAutoConsoleVariableRef CVarVisualizeLumenSceneMaxTraceDistance(
	TEXT("r.Lumen.Visualize.MaxTraceDistance"),
	GVisualizeLumenSceneMaxTraceDistance,
	TEXT(""),
	ECVF_RenderThreadSafe
);

int32 GVisualizeLumenCardGenerationSurfels = 0;
FAutoConsoleVariableRef CVarVisualizeLumenSceneCardGenerationSurfels(

#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/Lumen/LumenVisualize.cpp:632

Scope (from outer to inner):

file
function     void SetupVisualizeParameters

Source code excerpt:

	}

	float MaxTraceDistance = GVisualizeLumenSceneMaxTraceDistance;
	uint32 MaxReflectionBounces = 1;
	uint32 MaxRefractionBounces = LumenReflections::UseTranslucentRayTracing(View) ? 1 : 0;

	// Reflection scene view uses reflection setup
	if (VisualizeMode == VISUALIZE_MODE_REFLECTION_VIEW)
	{