modeling.WorldRenderCapture.VTWarmupFrames

modeling.WorldRenderCapture.VTWarmupFrames

#Overview

name: modeling.WorldRenderCapture.VTWarmupFrames

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 modeling.WorldRenderCapture.VTWarmupFrames is to control the number of frames rendered before each capture to warm up the renderer in the Mesh Modeling Toolset plugin for Unreal Engine 5.

This setting variable is primarily used in the Mesh Modeling Toolset plugin, specifically within the ModelingComponents module. It is part of the rendering system for world capture functionality.

The value of this variable is set as a console variable with a default value of 5. It can be modified at runtime through console commands or programmatically.

The associated variable CVarModelingWorldRenderCaptureWarmupFrames directly interacts with modeling.WorldRenderCapture.VTWarmupFrames. They share the same value and purpose.

Developers must be aware that this variable affects the rendering performance and quality of world captures in the Mesh Modeling Toolset. Increasing the number of warmup frames may improve the quality of the capture but will also increase the time taken for each capture operation.

Best practices when using this variable include:

  1. Adjusting the value based on the specific needs of your project and the complexity of the scenes being captured.
  2. Monitoring performance impacts when modifying this value, especially in performance-critical scenarios.
  3. Considering the trade-off between capture quality and capture speed when setting this value.

Regarding the associated variable CVarModelingWorldRenderCaptureWarmupFrames:

This is the actual console variable that controls the number of warmup frames. It is used in the PerformSceneRender function to determine how many times to render the scene before capturing. The value is retrieved using the GetValueOnGameThread() method, which ensures thread-safe access to the variable’s value.

Developers should note that modifying this variable will directly affect the behavior of the world render capture system in the Mesh Modeling Toolset. It’s important to consider the performance implications of increasing this value, especially in scenarios where frequent captures are performed.

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Plugins/Runtime/MeshModelingToolset/Source/ModelingComponents/Private/Scene/WorldRenderCapture.cpp:28

Scope: file

Source code excerpt:


static TAutoConsoleVariable<int32> CVarModelingWorldRenderCaptureWarmupFrames(
	TEXT("modeling.WorldRenderCapture.VTWarmupFrames"),
	5,
	TEXT("Number of frames to render before each capture in order to warmup the renderer."));

FRenderCaptureTypeFlags FRenderCaptureTypeFlags::All(bool bCombinedMRS)
{
	FRenderCaptureTypeFlags Result;

#Associated Variable and Callsites

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

#Loc: <Workspace>/Engine/Plugins/Runtime/MeshModelingToolset/Source/ModelingComponents/Private/Scene/WorldRenderCapture.cpp:27

Scope: file

Source code excerpt:

using namespace UE::Geometry;

static TAutoConsoleVariable<int32> CVarModelingWorldRenderCaptureWarmupFrames(
	TEXT("modeling.WorldRenderCapture.VTWarmupFrames"),
	5,
	TEXT("Number of frames to render before each capture in order to warmup the renderer."));

FRenderCaptureTypeFlags FRenderCaptureTypeFlags::All(bool bCombinedMRS)
{

#Loc: <Workspace>/Engine/Plugins/Runtime/MeshModelingToolset/Source/ModelingComponents/Private/Scene/WorldRenderCapture.cpp:391

Scope (from outer to inner):

file
namespace    UE
namespace    Internal
function     static void PerformSceneRender

Source code excerpt:

	do
	{
		int32 NumRender = 1 + CVarModelingWorldRenderCaptureWarmupFrames.GetValueOnGameThread();
		for (int32 i = 0; i < NumRender; i++)
		{
			GetRendererModule().BeginRenderingViewFamily(Canvas, ViewFamily);
		}

		// Flush rendering commands, may queue assets compilation (shaders)