Files

147 lines
4.6 KiB
C++
Raw Permalink Normal View History

Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
#include "LumenVisualizationMenuCommands.h"
#include "Delegates/Delegate.h"
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
#include "EditorViewportClient.h"
#include "Framework/Commands/InputChord.h"
#include "Framework/Commands/UIAction.h"
#include "Framework/Commands/UICommandInfo.h"
#include "Framework/Commands/UICommandList.h"
#include "Framework/MultiBox/MultiBoxBuilder.h"
#include "Internationalization/Internationalization.h"
#include "Internationalization/Text.h"
#include "LumenVisualizationData.h"
#include "Misc/AssertionMacros.h"
#include "Styling/AppStyle.h"
#include "UObject/UnrealNames.h"
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
#define LOCTEXT_NAMESPACE "LumenVisualizationMenuCommands"
FLumenVisualizationMenuCommands::FLumenVisualizationMenuCommands()
: TCommands<FLumenVisualizationMenuCommands>
(
TEXT("LumenVisualizationMenu"), // Context name for fast lookup
NSLOCTEXT("Contexts", "LumenVisualizationMenu", "Lumen"), // Localized context name for displaying
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
NAME_None, // Parent context name.
FAppStyle::GetAppStyleSetName() // Icon Style Set
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
),
CommandMap()
{
}
void FLumenVisualizationMenuCommands::BuildCommandMap()
{
const FLumenVisualizationData& VisualizationData = GetLumenVisualizationData();
const FLumenVisualizationData::TModeMap& ModeMap = VisualizationData.GetModeMap();
CommandMap.Empty();
for (FLumenVisualizationData::TModeMap::TConstIterator It = ModeMap.CreateConstIterator(); It; ++It)
{
const FLumenVisualizationData::FModeRecord& Entry = It.Value();
FLumenVisualizationRecord& Record = CommandMap.Add(Entry.ModeName, FLumenVisualizationRecord());
Record.Name = Entry.ModeName;
Record.Command = FUICommandInfoDecl(
this->AsShared(),
Entry.ModeName,
Entry.ModeText,
Entry.ModeDesc)
.UserInterfaceType(EUserInterfaceActionType::RadioButton)
.DefaultChord(FInputChord()
);
switch (Entry.ModeType)
{
default:
case FLumenVisualizationData::FModeType::Overview:
Record.Type = FLumenVisualizationType::Overview;
break;
case FLumenVisualizationData::FModeType::Standard:
Record.Type = FLumenVisualizationType::Standard;
break;
}
}
}
void FLumenVisualizationMenuCommands::BuildVisualisationSubMenu(FMenuBuilder& Menu)
{
const FLumenVisualizationMenuCommands& Commands = FLumenVisualizationMenuCommands::Get();
if (Commands.IsPopulated())
{
Menu.BeginSection("LevelViewportLumenVisualizationMode", LOCTEXT("LumenVisualizationHeader", "Lumen Visualization Mode"));
if (Commands.AddCommandTypeToMenu(Menu, FLumenVisualizationType::Overview))
{
Menu.AddMenuSeparator();
}
Commands.AddCommandTypeToMenu(Menu, FLumenVisualizationType::Standard);
Menu.EndSection();
}
}
bool FLumenVisualizationMenuCommands::AddCommandTypeToMenu(FMenuBuilder& Menu, const FLumenVisualizationType Type) const
{
bool bAddedCommands = false;
const TLumenVisualizationModeCommandMap& Commands = CommandMap;
for (TCommandConstIterator It = CreateCommandConstIterator(); It; ++It)
{
const FLumenVisualizationRecord& Record = It.Value();
if (Record.Type == Type)
{
Menu.AddMenuEntry(Record.Command, NAME_None, Record.Command->GetLabel());
bAddedCommands = true;
}
}
return bAddedCommands;
}
FLumenVisualizationMenuCommands::TCommandConstIterator FLumenVisualizationMenuCommands::CreateCommandConstIterator() const
{
return CommandMap.CreateConstIterator();
}
void FLumenVisualizationMenuCommands::RegisterCommands()
{
BuildCommandMap();
}
void FLumenVisualizationMenuCommands::BindCommands(FUICommandList& CommandList, const TSharedPtr<FEditorViewportClient>& Client) const
{
// Map Lumen visualization mode actions
for (FLumenVisualizationMenuCommands::TCommandConstIterator It = FLumenVisualizationMenuCommands::Get().CreateCommandConstIterator(); It; ++It)
{
const FLumenVisualizationMenuCommands::FLumenVisualizationRecord& Record = It.Value();
CommandList.MapAction(
Record.Command,
FExecuteAction::CreateStatic(&FLumenVisualizationMenuCommands::ChangeLumenVisualizationMode, Client.ToWeakPtr(), Record.Name),
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
FCanExecuteAction(),
FIsActionChecked::CreateStatic(&FLumenVisualizationMenuCommands::IsLumenVisualizationModeSelected, Client.ToWeakPtr(), Record.Name)
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
);
}
}
void FLumenVisualizationMenuCommands::ChangeLumenVisualizationMode(TWeakPtr<FEditorViewportClient> WeakClient, FName InName)
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
{
if (TSharedPtr<FEditorViewportClient> Client = WeakClient.Pin())
{
Client->ChangeLumenVisualizationMode(InName);
}
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
}
bool FLumenVisualizationMenuCommands::IsLumenVisualizationModeSelected(TWeakPtr<FEditorViewportClient> WeakClient, FName InName)
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
{
if (TSharedPtr<FEditorViewportClient> Client = WeakClient.Pin())
{
return Client->IsLumenVisualizationModeSelected(InName);
}
return false;
Refactored Lumen visualization views and show flag in order to improve user experience. All Lumen visualization modes and show flags were moved into Lumen submenus for easier discovery. View modes were made exclusive (only one may be active at a time). Additonally exposed new view modes and show flags in order to easier debug and understand Lumen. Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
2022-01-19 10:11:35 -05:00
}
#undef LOCTEXT_NAMESPACE