bHErosionDetailSmooth
bHErosionDetailSmooth
#Overview
name: bHErosionDetailSmooth
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 5
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bHErosionDetailSmooth is to control whether a detail-preserving smooth operation is applied to the erosion effect in the Landscape Editor’s Hydra Erosion tool. This setting variable is part of the terrain editing and modification system in Unreal Engine 5.
This setting variable is primarily used in the Landscape Editor module, specifically within the Hydra Erosion tool. It’s part of the ULandscapeEditorObject class, which handles various landscape editing settings and operations.
The value of this variable is set in multiple places:
- It’s initialized in the ULandscapeEditorObject constructor (LandscapeEditorObject.cpp).
- It can be loaded from and saved to the project’s configuration file (GEditorPerProjectIni) in the Load() and Save() functions of ULandscapeEditorObject.
- It can be modified through the Unreal Editor’s property system, as it’s declared as an UPROPERTY with EditAnywhere specifier.
The bHErosionDetailSmooth variable interacts closely with the HErosionDetailScale variable. When bHErosionDetailSmooth is true, the HErosionDetailScale value is used to determine the intensity of the detail-preserving smooth operation.
Developers should be aware that:
- This variable affects the visual outcome of the Hydra Erosion tool.
- It’s a boolean value, so it’s either on (true) or off (false).
- When enabled, it applies a low-pass filter to the height data of the landscape.
Best practices when using this variable include:
- Use it in conjunction with HErosionDetailScale to fine-tune the erosion effect.
- Consider the performance impact of enabling this option, especially on large landscapes.
- Save preferred settings to the project configuration for consistency across sessions.
- Test the visual impact with and without this option enabled to determine the best setting for your specific landscape.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:751, section: [LandscapeEdit]
- INI Section:
LandscapeEdit
- Raw value:
True
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEdModeErosionTools.cpp:512
Scope (from outer to inner):
file
class class FLandscapeToolStrokeHydraErosion : public FLandscapeToolStrokeErosionBase
function void Apply
Source code excerpt:
}
if (UISettings->bHErosionDetailSmooth)
{
//LowPassFilter<uint16>(X1, Y1, X2, Y2, BrushInfo, HeightData, UISettings->HErosionDetailScale, UISettings->ToolStrength * Pressure);
LowPassFilter<uint16>(X1, Y1, X2, Y2, BrushInfo, HeightData, UISettings->HErosionDetailScale, 1.0f);
}
LayerHeightDataCache.Write(X1, Y1, X2, Y2, HeightData);
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEditorObject.cpp:67
Scope (from outer to inner):
file
function ULandscapeEditorObject::ULandscapeEditorObject
Source code excerpt:
, RainDistMode(ELandscapeToolHydroErosionMode::Both)
, RainDistScale(60.0f)
, bHErosionDetailSmooth(true)
, HErosionDetailScale(0.01f)
, NoiseMode(ELandscapeToolNoiseMode::Both)
, NoiseScale(128.0f)
, bUseSelectedRegion(true)
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEditorObject.cpp:286
Scope (from outer to inner):
file
function void ULandscapeEditorObject::Load
Source code excerpt:
GConfig->GetFloat(TEXT("LandscapeEdit"), TEXT("RainDistScale"), RainDistScale, GEditorPerProjectIni);
GConfig->GetFloat(TEXT("LandscapeEdit"), TEXT("HErosionDetailScale"), HErosionDetailScale, GEditorPerProjectIni);
bool InbHErosionDetailSmooth = bHErosionDetailSmooth;
GConfig->GetBool(TEXT("LandscapeEdit"), TEXT("bHErosionDetailSmooth"), InbHErosionDetailSmooth, GEditorPerProjectIni);
bHErosionDetailSmooth = InbHErosionDetailSmooth;
int32 InNoiseMode = (int32)NoiseMode;
GConfig->GetInt(TEXT("LandscapeEdit"), TEXT("NoiseMode"), InNoiseMode, GEditorPerProjectIni);
NoiseMode = (ELandscapeToolNoiseMode)InNoiseMode;
GConfig->GetFloat(TEXT("LandscapeEdit"), TEXT("NoiseScale"), NoiseScale, GEditorPerProjectIni);
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEditorObject.cpp:435
Scope (from outer to inner):
file
function void ULandscapeEditorObject::Save
Source code excerpt:
GConfig->SetFloat(TEXT("LandscapeEdit"), TEXT("RainDistScale"), RainDistScale, GEditorPerProjectIni);
GConfig->SetFloat(TEXT("LandscapeEdit"), TEXT("HErosionDetailScale"), HErosionDetailScale, GEditorPerProjectIni);
GConfig->SetBool(TEXT("LandscapeEdit"), TEXT("bHErosionDetailSmooth"), bHErosionDetailSmooth, GEditorPerProjectIni);
GConfig->SetInt(TEXT("LandscapeEdit"), TEXT("NoiseMode"), (int32)NoiseMode, GEditorPerProjectIni);
GConfig->SetFloat(TEXT("LandscapeEdit"), TEXT("NoiseScale"), NoiseScale, GEditorPerProjectIni);
GConfig->SetInt(TEXT("LandscapeEdit"), TEXT("SmoothFilterKernelSize"), SmoothFilterKernelSize, GEditorPerProjectIni);
GConfig->SetFloat(TEXT("LandscapeEdit"), TEXT("DetailScale"), DetailScale, GEditorPerProjectIni);
GConfig->SetBool(TEXT("LandscapeEdit"), TEXT("bDetailSmooth"), bDetailSmooth, GEditorPerProjectIni);
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Public/LandscapeEditorObject.h:421
Scope (from outer to inner):
file
class class ULandscapeEditorObject : public UObject
Source code excerpt:
// If checked, performs a detail-preserving smooth to the erosion effect using the specified detail smoothing value
UPROPERTY(Category = "Tool Settings", NonTransactional, EditAnywhere, meta = (InlineEditConditionToggle))
bool bHErosionDetailSmooth;
// Larger detail smoothing values remove more details, while smaller values preserve more details
UPROPERTY(Category="Tool Settings", EditAnywhere, NonTransactional, meta=(DisplayName="Detail Smooth", EditCondition="bHErosionDetailSmooth", ShowForTools="HydraErosion", ClampMin="0", ClampMax="0.99"))
float HErosionDetailScale;
// Noise Tool: