r.Lumen.Visualize.MinTraceDistance

r.Lumen.Visualize.MinTraceDistance

#Overview

name: r.Lumen.Visualize.MinTraceDistance

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.MinTraceDistance is to set the minimum trace distance for Lumen visualization. This setting variable is part of the Lumen global illumination system in Unreal Engine 5, specifically for debug visualization purposes.

This setting variable is primarily used in the Renderer module of Unreal Engine 5, specifically within the Lumen subsystem. It’s referenced in the LumenVisualize.cpp file, which suggests it’s used for visualizing Lumen’s operations.

The value of this variable is set through the console variable system in Unreal Engine. It’s defined as an FAutoConsoleVariableRef, which means it can be modified at runtime through console commands or configuration files.

The variable interacts directly with GVisualizeLumenSceneMinTraceDistance, which is the C++ variable that stores the actual value. It’s also used in conjunction with GVisualizeLumenSceneMaxTraceDistance to define the range of trace distances for visualization.

Developers should be aware that this variable is used for visualization purposes only and doesn’t affect the actual Lumen lighting calculations. It’s primarily a debug tool to help understand how Lumen is operating.

Best practices when using this variable include:

  1. Use it in conjunction with other Lumen visualization tools for a comprehensive debug view.
  2. Be cautious about setting extremely low values, as it might affect performance or visualization clarity.
  3. Remember that changes to this variable will only affect debug visualization, not actual lighting results.

Regarding the associated variable GVisualizeLumenSceneMinTraceDistance:

The purpose of GVisualizeLumenSceneMinTraceDistance is to store the actual value of the minimum trace distance for Lumen visualization. It’s the C++ variable that r.Lumen.Visualize.MinTraceDistance controls.

This variable is used directly in the SetupVisualizeParameters function to set the MinTraceDistance parameter for Lumen visualization. It’s clamped between 0.01 and 1000.0 units to ensure it stays within a reasonable range.

The value of this variable is set by the console variable system when r.Lumen.Visualize.MinTraceDistance is modified.

It interacts with the MaxTraceDistance parameter and other visualization settings to define the range and behavior of Lumen’s debug visualization.

Developers should be aware that this is an internal variable and should generally be modified through the r.Lumen.Visualize.MinTraceDistance console variable rather than directly.

Best practices for this variable are similar to those for r.Lumen.Visualize.MinTraceDistance, as they are directly linked. Additionally, developers should remember that this variable is used in actual calculations for visualization, so its performance impact might be more direct than the console variable itself.

#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:123

Scope: file

Source code excerpt:

float GVisualizeLumenSceneMinTraceDistance = 0;
FAutoConsoleVariableRef CVarVisualizeLumenSceneMinTraceDistance(
	TEXT("r.Lumen.Visualize.MinTraceDistance"),
	GVisualizeLumenSceneMinTraceDistance,
	TEXT(""),
	ECVF_RenderThreadSafe
);

float GVisualizeLumenSceneMaxTraceDistance = 100000;

#Associated Variable and Callsites

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

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

Scope: file

Source code excerpt:

	);

float GVisualizeLumenSceneMinTraceDistance = 0;
FAutoConsoleVariableRef CVarVisualizeLumenSceneMinTraceDistance(
	TEXT("r.Lumen.Visualize.MinTraceDistance"),
	GVisualizeLumenSceneMinTraceDistance,
	TEXT(""),
	ECVF_RenderThreadSafe
);

float GVisualizeLumenSceneMaxTraceDistance = 100000;
FAutoConsoleVariableRef CVarVisualizeLumenSceneMaxTraceDistance(

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

Scope (from outer to inner):

file
function     void SetupVisualizeParameters

Source code excerpt:


		VisualizeParameters.VisualizeStepFactor = FMath::Clamp(GVisualizeLumenSceneConeStepFactor, .1f, 10.0f);
		VisualizeParameters.MinTraceDistance = FMath::Clamp(GVisualizeLumenSceneMinTraceDistance, .01f, 1000.0f);
		VisualizeParameters.MaxTraceDistance = FMath::Clamp(MaxTraceDistance, .01f, Lumen::MaxTraceDistance);
		VisualizeParameters.CardInterpolateInfluenceRadius = GVisualizeLumenSceneCardInterpolateInfluenceRadius;
		VisualizeParameters.MaxMeshSDFTraceDistanceForVoxelTracing = FMath::Clamp(MaxMeshSDFTraceDistance, VisualizeParameters.MinTraceDistance, VisualizeParameters.MaxTraceDistance);
		VisualizeParameters.MaxMeshSDFTraceDistance = FMath::Clamp(MaxMeshSDFTraceDistance, VisualizeParameters.MinTraceDistance, VisualizeParameters.MaxTraceDistance);
		VisualizeParameters.HeightfieldMaxTracingSteps = Lumen::GetHeightfieldMaxTracingSteps();
	}