BSPSelectionHighlightIntensity
BSPSelectionHighlightIntensity
#Overview
name: BSPSelectionHighlightIntensity
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 6
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of BSPSelectionHighlightIntensity is to control the intensity of the highlight overlay displayed when a BSP (Binary Space Partitioning) surface is selected in the Unreal Engine editor.
This setting variable is primarily used by the Unreal Engine’s rendering system, specifically for editor visualization. It is utilized in the following subsystems and modules:
- UnrealEd: The main editor module
- Engine: The core engine module
- Renderer: The rendering module
The value of this variable is set in multiple places:
- It is defined as a configurable property in the ULevelEditorViewportSettings class.
- It is initialized to 0.0f in the UEngine constructor.
- It can be modified through the editor settings UI, which triggers the PostEditChangeProperty function in ULevelEditorViewportSettings.
This variable interacts with other selection highlight-related variables, such as SelectionHighlightIntensity and SelectionHighlightIntensityBillboards. These variables work together to provide a consistent selection highlight experience across different types of objects in the editor.
Developers should be aware of the following when using this variable:
- The value is clamped between 0 and 1, as indicated by the meta tags in the property definition.
- Changes to this value are immediately reflected in the editor viewport without requiring a restart.
- This variable specifically affects BSP surfaces, which are less commonly used in modern Unreal Engine projects but may still be present in older projects or for specific use cases.
Best practices when using this variable include:
- Adjusting it in conjunction with other selection highlight intensities to maintain a consistent visual style in the editor.
- Using moderate values to ensure selected BSP surfaces are visible without being overly distracting.
- Consider the overall lighting and visual style of your project when setting this value to ensure good visibility in various environments.
- If not working with BSP surfaces, this setting can be left at its default value without impacting other selection highlights.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:450, section: [/Script/UnrealEd.LevelEditorViewportSettings]
- INI Section:
/Script/UnrealEd.LevelEditorViewportSettings
- Raw value:
0.2
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Settings/LevelEditorViewportSettings.h:529
Scope (from outer to inner):
file
class class ULevelEditorViewportSettings : public UObject
Source code excerpt:
/** Sets the intensity of the overlay displayed when an object is selected */
UPROPERTY(EditAnywhere, config, Category=LookAndFeel, AdvancedDisplay, meta=(DisplayName = "BSP Surface Highlight Intensity" ,ClampMin = "0", UIMin = "0", UIMax = "1"))
float BSPSelectionHighlightIntensity;
/** Enables the editor perspective camera to be dropped at the last PlayInViewport cam position */
UPROPERTY(EditAnywhere, config, Category=LookAndFeel, meta=(DisplayName = "Use Camera Location from Play-In-Viewport"))
uint32 bEnableViewportCameraToUpdateFromPIV:1;
/** When enabled, selecting a camera actor will display a live 'picture in picture' preview from the camera's perspective within the current editor view port. This can be used to easily tweak camera positioning, post-processing and other settings without having to possess the camera itself. This feature may reduce application performance when enabled. */
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorEngine.cpp:863
Scope (from outer to inner):
file
function void UEditorEngine::InitEditor
Source code excerpt:
GEngine->SetSubduedSelectionOutlineColor(StyleSettings->GetSubduedSelectionColor());
GEngine->SelectionHighlightIntensity = ViewportSettings->SelectionHighlightIntensity;
GEngine->BSPSelectionHighlightIntensity = ViewportSettings->BSPSelectionHighlightIntensity;
// Set navigation system property indicating whether navigation is supposed to rebuild automatically
FWorldContext &EditorContext = GetEditorWorldContext();
FNavigationSystem::SetNavigationAutoUpdateEnabled(GetDefault<ULevelEditorMiscSettings>()->bNavigationAutoUpdate, EditorContext.World()->GetNavigationSystem());
// Allocate temporary model.
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Settings/SettingsClasses.cpp:993
Scope (from outer to inner):
file
function void ULevelEditorViewportSettings::PostEditChangeProperty
Source code excerpt:
GEngine->SelectionHighlightIntensity = SelectionHighlightIntensity;
}
else if (Name == GET_MEMBER_NAME_CHECKED(ULevelEditorViewportSettings, BSPSelectionHighlightIntensity))
{
GEngine->BSPSelectionHighlightIntensity = BSPSelectionHighlightIntensity;
}
else if ((Name == FName(TEXT("UserDefinedPosGridSizes"))) || (Name == FName(TEXT("UserDefinedRotGridSizes"))) || (Name == FName(TEXT("ScalingGridSizes"))) || (Name == FName(TEXT("GridIntervals")))) //@TODO: This should use GET_MEMBER_NAME_CHECKED
{
const float MinGridSize = (Name == FName(TEXT("GridIntervals"))) ? 4.0f : 0.0001f; //@TODO: This should use GET_MEMBER_NAME_CHECKED
TArray<float>* ArrayRef = nullptr;
int32* IndexRef = nullptr;
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Classes/Engine/Engine.h:1748
Scope (from outer to inner):
file
class class UEngine : public UObject , public FExec
Source code excerpt:
/** Used to alter the intensity level of the selection highlight on selected BSP surfaces */
UPROPERTY(transient)
float BSPSelectionHighlightIntensity;
/** Used to alter the intensity level of the selection highlight on selected billboard objects */
UPROPERTY(transient)
float SelectionHighlightIntensityBillboards;
/** Delegate handling when streaming pause begins. Set initially in FStreamingPauseRenderingModule::StartupModule() but can then be overridden by games. */
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/GameEngine.cpp:779
Scope (from outer to inner):
file
function UEngine::UEngine
Source code excerpt:
SelectionHighlightIntensity = 0.0f;
BSPSelectionHighlightIntensity = 0.0f;
SelectionHighlightIntensityBillboards = 0.25f;
bIsInitialized = false;
BeginStreamingPauseDelegate = NULL;
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessSelectionOutline.cpp:267
Scope: file
Source code excerpt:
PassParameters->OutlineColorIndexBits = 3;
PassParameters->SelectionHighlightIntensity = GEngine->SelectionHighlightIntensity;
PassParameters->BSPSelectionIntensity = GEngine->BSPSelectionHighlightIntensity;
PassParameters->SecondaryViewportOffset = SecondaryViewOffset;
EDisplayOutputFormat DisplayOutputFormat = View.Family->RenderTarget->GetDisplayOutputFormat();
bool bIsHDR = false;
bool bIsSCRGB = false;
if (FSelectionOutlinePS::SupportHDR(GetFeatureLevelShaderPlatform(GMaxRHIFeatureLevel)))