ShowFlag.VisualizeCalibrationCustom
ShowFlag.VisualizeCalibrationCustom
#Overview
name: ShowFlag.VisualizeCalibrationCustom
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Allows to override a specific showflag (works in editor and game, \
It is referenced in 6
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of ShowFlag.VisualizeCalibrationCustom is to enable the visualization of a custom calibration post-process material defined in the renderer configuration. This setting is primarily used for display calibration and debugging purposes in the Unreal Engine’s rendering system.
This setting variable is primarily relied upon by the Unreal Engine’s rendering subsystem, particularly in the post-processing pipeline. It’s also used in the editor’s viewport system, as evidenced by references in the EditorViewportClient.
The value of this variable is set through the engine’s show flags system, which allows for runtime toggling of various rendering features. It’s typically controlled via the engine’s debug visualization tools or through editor UI.
ShowFlag.VisualizeCalibrationCustom interacts with several other variables:
- VisualizeCalibrationColor and VisualizeCalibrationGrayscale: These are similar calibration visualization flags.
- VisualizeCalibrationCustomMaterialPath: This variable defines the path to the custom material used for calibration visualization.
Developers should be aware that:
- This flag is always accessible, even in shipping builds, as indicated by the SHOWFLAG_ALWAYS_ACCESSIBLE macro.
- It’s part of the SFG_Developer group, suggesting it’s primarily intended for development and debugging purposes.
- The actual visualization depends on a valid custom material being set in the renderer configuration.
Best practices when using this variable include:
- Use it in conjunction with the appropriate custom calibration material for accurate results.
- Be cautious about enabling it in shipping builds, as it may impact performance.
- Consider using it alongside other calibration visualization flags for comprehensive debugging.
Regarding the associated variable VisualizeCalibrationCustom:
This appears to be the same variable, just referenced in different contexts. It’s used in similar ways across the engine:
- In the editor viewport client to determine if calibration visualization is enabled.
- In the scene view configuration to set up the appropriate calibration material.
- In the renderer to determine if the custom calibration post-process should be applied.
The best practices and considerations for VisualizeCalibrationCustom are the same as those for ShowFlag.VisualizeCalibrationCustom, as they represent the same functionality in different parts of the engine.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:407
Scope: file
Source code excerpt:
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeCalibrationGrayscale, SFG_Developer, NSLOCTEXT("UnrealEd", "VisualizeCalibrationGrayscaleSF", "Visualize Calibration Grayscale"))
/** Shows a full-screen calibration custom post process material defined in renderer config */
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeCalibrationCustom, SFG_Developer, NSLOCTEXT("UnrealEd", "VisualizeCalibrationCustomSF", "Visualize Calibration Custom"))
/** Visualise information about the post processes stacked on screen */
SHOWFLAG_FIXED_IN_SHIPPING(0, VisualizePostProcessStack, SFG_Visualize, NSLOCTEXT("UnrealEd", "VisualizePostProcessStackSF", "Visualize Post Process Stack"))
/** Draw in the main pass the primitives that would normally only contribute to runtime virtual textures. */
SHOWFLAG_FIXED_IN_SHIPPING(0, VirtualTexturePrimitives, SFG_Developer, NSLOCTEXT("UnrealEd", "VirtualTexturePrimitivesSF", "Virtual Texture Primitives"))
#Associated Variable and Callsites
This variable is associated with another variable named VisualizeCalibrationCustom
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorViewportClient.cpp:2830
Scope (from outer to inner):
file
function bool FEditorViewportClient::IsVisualizeCalibrationMaterialEnabled
Source code excerpt:
check(Settings);
return ((EngineShowFlags.VisualizeCalibrationCustom && Settings->VisualizeCalibrationCustomMaterialPath.IsValid()) ||
(EngineShowFlags.VisualizeCalibrationColor && Settings->VisualizeCalibrationColorMaterialPath.IsValid()) ||
(EngineShowFlags.VisualizeCalibrationGrayscale && Settings->VisualizeCalibrationGrayscaleMaterialPath.IsValid()));
}
void FEditorViewportClient::ChangeRayTracingDebugVisualizationMode(FName InName)
{
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/SceneView.cpp:2424
Scope (from outer to inner):
file
function void FSceneView::ConfigureVisualizeCalibrationSettings
Source code excerpt:
ConfigureCalibrationSettings(Settings->VisualizeCalibrationGrayscaleMaterialPath, FinalPostProcessSettings.VisualizeCalibrationGrayscaleMaterial, CurrentVisualizeCalibrationGrayscaleMaterialName);
}
else if (Family->EngineShowFlags.VisualizeCalibrationCustom)
{
ConfigureCalibrationSettings(Settings->VisualizeCalibrationCustomMaterialPath, FinalPostProcessSettings.VisualizeCalibrationCustomMaterial, CurrentVisualizeCalibrationCustomMaterialName);
}
}
#endif // #if !(UE_BUILD_SHIPPING)
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlags.h:262
Scope (from outer to inner):
file
function bool IsVisualizeCalibrationEnabled
Source code excerpt:
bool IsVisualizeCalibrationEnabled() const
{
return (VisualizeCalibrationColor || VisualizeCalibrationGrayscale || VisualizeCalibrationCustom);
}
// ---------------------------------------------------------
// The following methods are there for serialization, localization and in general to iterate and manipulate flags.
// ---------------------------------------------------------
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:407
Scope: file
Source code excerpt:
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeCalibrationGrayscale, SFG_Developer, NSLOCTEXT("UnrealEd", "VisualizeCalibrationGrayscaleSF", "Visualize Calibration Grayscale"))
/** Shows a full-screen calibration custom post process material defined in renderer config */
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeCalibrationCustom, SFG_Developer, NSLOCTEXT("UnrealEd", "VisualizeCalibrationCustomSF", "Visualize Calibration Custom"))
/** Visualise information about the post processes stacked on screen */
SHOWFLAG_FIXED_IN_SHIPPING(0, VisualizePostProcessStack, SFG_Visualize, NSLOCTEXT("UnrealEd", "VisualizePostProcessStackSF", "Visualize Post Process Stack"))
/** Draw in the main pass the primitives that would normally only contribute to runtime virtual textures. */
SHOWFLAG_FIXED_IN_SHIPPING(0, VirtualTexturePrimitives, SFG_Developer, NSLOCTEXT("UnrealEd", "VirtualTexturePrimitivesSF", "Virtual Texture Primitives"))
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessVisualizeCalibrationMaterial.cpp:15
Scope (from outer to inner):
file
function static bool IsPostProcessVisualizeCalibrationCustomMaterialEnabled
Source code excerpt:
static bool IsPostProcessVisualizeCalibrationCustomMaterialEnabled(const FSceneView& View)
{
return View.Family->EngineShowFlags.VisualizeCalibrationCustom && View.CurrentVisualizeCalibrationCustomMaterialName != NAME_None;
}
bool IsPostProcessVisualizeCalibrationMaterialEnabled(const FSceneView& View)
{
return (IsPostProcessVisualizeCalibrationColorMaterialEnabled(View) || IsPostProcessVisualizeCalibrationGrayscaleMaterialEnabled(View) || IsPostProcessVisualizeCalibrationCustomMaterialEnabled(View));
}