ShowFlag.VisualizeGroom
ShowFlag.VisualizeGroom
#Overview
name: ShowFlag.VisualizeGroom
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 5
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of ShowFlag.VisualizeGroom is to enable the Groom visualization mode in Unreal Engine 5. This setting is primarily used for the rendering system, specifically for visualizing hair and fur grooming.
This setting variable is relied upon by the Engine and Renderer subsystems of Unreal Engine 5. It’s used in conjunction with the GroomVisualizationData module to control the visualization of groom assets.
The value of this variable is set through the engine’s show flags system. It can be toggled on or off in the editor or through code.
ShowFlag.VisualizeGroom interacts with several other variables and systems:
- It’s associated with the
VisualizeGroom
variable, which shares the same value. - It’s used in the
GetGroomViewMode
function to determine if groom visualization should be enabled. - It’s part of the
FindViewMode
function, which determines the current view mode of the engine. - It’s used in the temporal super-resolution pass to determine if groom visualization should affect the rendering process.
Developers should be aware that:
- This flag is marked as “ALWAYS_ACCESSIBLE”, meaning it can be used in shipping builds.
- It’s categorized as “SFG_Hidden”, suggesting it’s not meant to be directly exposed to end-users.
- Enabling this flag may impact performance, as it adds additional visualization overhead.
Best practices when using this variable include:
- Only enable it when necessary for debugging or artistic purposes.
- Be mindful of its performance impact in shipping builds.
- Use it in conjunction with other groom-related tools and settings for comprehensive hair and fur visualization.
Regarding the associated variable VisualizeGroom
:
The purpose of VisualizeGroom
is the same as ShowFlag.VisualizeGroom - to enable the Groom visualization mode. It’s used in the same contexts and subsystems as ShowFlag.VisualizeGroom.
The value of VisualizeGroom
is set through the engine’s show flags system, similar to ShowFlag.VisualizeGroom.
VisualizeGroom
interacts closely with ShowFlag.VisualizeGroom, as they share the same value and are used interchangeably in different parts of the engine code.
Developers should be aware that VisualizeGroom
and ShowFlag.VisualizeGroom are essentially the same setting, just accessed through different means in different parts of the engine code.
Best practices for VisualizeGroom
are the same as for ShowFlag.VisualizeGroom, as they represent the same functionality.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:71
Scope: file
Source code excerpt:
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeSubstrate, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeSubstrateSF", "Substrate Visualization"))
/** Needed for VMI_VisualizeGroom, Whether to enable the Groom visualization mode. */
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeGroom, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeGroomSF", "Groom Visualization"))
/** Needed for VMI_VisualizeVirtualShadowMap, Whether to enable the virtual shadow map visualization mode. */
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeVirtualShadowMap, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeVirtualShadowMapSF", "Virtual Shadow Map Visualization"))
/** Allows to disable all direct lighting (does not affect indirect light) */
SHOWFLAG_FIXED_IN_SHIPPING(1, DirectLighting, SFG_LightingComponents, NSLOCTEXT("UnrealEd", "DirectLightingSF", "Direct Lighting"))
/** Allows to disable lighting from Directional Lights */
SHOWFLAG_FIXED_IN_SHIPPING(1, DirectionalLights, SFG_LightTypes, NSLOCTEXT("UnrealEd", "DirectionalLightsSF", "Directional Lights"))
#Associated Variable and Callsites
This variable is associated with another variable named VisualizeGroom
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/GroomVisualizationData.cpp:89
Scope (from outer to inner):
file
function EGroomViewMode GetGroomViewMode
Source code excerpt:
const FGroomVisualizationData& VisualizationData = GetGroomVisualizationData();
if (View.Family && View.Family->EngineShowFlags.VisualizeGroom)
{
Out = VisualizationData.GetViewMode(View.CurrentGroomVisualizationMode);
}
else if (View.Family && View.Family->EngineShowFlags.LODColoration)
{
Out = EGroomViewMode::LODColoration;
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/ShowFlags.cpp:715
Scope (from outer to inner):
file
function EViewModeIndex FindViewMode
Source code excerpt:
return VMI_VisualizeSubstrate;
}
else if (EngineShowFlags.VisualizeGroom)
{
return VMI_VisualizeGroom;
}
else if (EngineShowFlags.VisualizeVirtualShadowMap)
{
return VMI_VisualizeVirtualShadowMap;
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:71
Scope: file
Source code excerpt:
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeSubstrate, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeSubstrateSF", "Substrate Visualization"))
/** Needed for VMI_VisualizeGroom, Whether to enable the Groom visualization mode. */
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeGroom, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeGroomSF", "Groom Visualization"))
/** Needed for VMI_VisualizeVirtualShadowMap, Whether to enable the virtual shadow map visualization mode. */
SHOWFLAG_ALWAYS_ACCESSIBLE(VisualizeVirtualShadowMap, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeVirtualShadowMapSF", "Virtual Shadow Map Visualization"))
/** Allows to disable all direct lighting (does not affect indirect light) */
SHOWFLAG_FIXED_IN_SHIPPING(1, DirectLighting, SFG_LightingComponents, NSLOCTEXT("UnrealEd", "DirectLightingSF", "Direct Lighting"))
/** Allows to disable lighting from Directional Lights */
SHOWFLAG_FIXED_IN_SHIPPING(1, DirectionalLights, SFG_LightTypes, NSLOCTEXT("UnrealEd", "DirectionalLightsSF", "Directional Lights"))
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/TemporalSuperResolution.cpp:1472
Scope (from outer to inner):
file
function FDefaultTemporalUpscaler::FOutputs AddTemporalSuperResolutionPasses
Source code excerpt:
&& (!View.Family->EngineShowFlags.VisualizeNanite || (View.Family->EngineShowFlags.VisualizeNanite && View.CurrentNaniteVisualizationMode == OverviewName))
&& (!View.Family->EngineShowFlags.VisualizeLumen || (View.Family->EngineShowFlags.VisualizeLumen && (View.CurrentLumenVisualizationMode == OverviewName || View.CurrentLumenVisualizationMode == PerformanceOverviewName)))
&& (!View.Family->EngineShowFlags.VisualizeGroom || (View.Family->EngineShowFlags.VisualizeGroom && View.CurrentGroomVisualizationMode == OverviewName));
#endif
if (bHasSeparateTranslucency)
{
SeparateTranslucencyTexture = PassInputs.PostDOFTranslucencyResources.ColorTexture.Resolve;
SeparateTranslucencyRect = PassInputs.PostDOFTranslucencyResources.ViewRect;
}