ShowFlag.PostProcessing
ShowFlag.PostProcessing
#Overview
name: ShowFlag.PostProcessing
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 30
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of ShowFlag.PostProcessing is to control the visibility and execution of post-processing effects in Unreal Engine’s rendering pipeline. This setting variable is a crucial part of the engine’s rendering system and affects various aspects of visual output.
The Unreal Engine subsystems, plugins, and modules that rely on this setting variable include:
- Renderer module
- Engine module
- OpenColorIO plugin
- MediaIOFramework plugin
- nDisplay plugin
- ColorCorrectRegions plugin
- Water plugin
The value of this variable is typically set through the engine’s show flags system, which can be manipulated programmatically or through the editor interface. It’s often toggled in various parts of the engine to enable or disable post-processing effects as needed.
Several other variables interact with ShowFlag.PostProcessing:
- EngineShowFlags.Tonemapper
- EngineShowFlags.PostProcessMaterial
- EngineShowFlags.MotionBlur
- EngineShowFlags.AntiAliasing
Developers must be aware of the following when using this variable:
- Disabling post-processing can significantly affect the visual quality of the scene.
- It’s often used in conjunction with other show flags to control specific aspects of rendering.
- Some features, like certain anti-aliasing methods, may not work when post-processing is disabled.
- Disabling post-processing can affect performance and may be used for optimization in certain scenarios.
Best practices when using this variable include:
- Only disable post-processing when necessary, as it can significantly impact visual quality.
- Consider the implications on other rendering features when toggling this flag.
- Use it in conjunction with other show flags for fine-grained control over rendering.
- Be aware of its impact on performance and use it judiciously for optimization.
The associated variable PostProcessing shares the same value and purpose as ShowFlag.PostProcessing. It’s used in various parts of the engine to check if post-processing is enabled and to control the execution of post-processing effects. The same considerations and best practices apply to this variable as well.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:19
Scope: file
Source code excerpt:
/** Affects all postprocessing features, depending on viewmode this is on or off, for now SHOWFLAG_ALWAYS_ACCESSIBLE because it's used by ReflectionEnviromentCapture */
SHOWFLAG_ALWAYS_ACCESSIBLE(PostProcessing, SFG_Hidden, NSLOCTEXT("UnrealEd", "PostProcessingSF", "Post-processing"))
/** Bloom, for now SHOWFLAG_ALWAYS_ACCESSIBLE because it's exposed in SceneCapture */
SHOWFLAG_ALWAYS_ACCESSIBLE(Bloom, SFG_PostProcess, NSLOCTEXT("UnrealEd", "BloomSF", "Bloom"))
/** Local Exposure, for now SHOWFLAG_ALWAYS_ACCESSIBLE because it's exposed in SceneCapture */
SHOWFLAG_ALWAYS_ACCESSIBLE(LocalExposure, SFG_PostProcess, NSLOCTEXT("UnrealEd", "LocalExposureSF", "Local Exposure"))
/** HDR->LDR conversion is done through a tone mapper (otherwise linear mapping is used) */
SHOWFLAG_FIXED_IN_SHIPPING(1, Tonemapper, SFG_PostProcess, NSLOCTEXT("UnrealEd", "TonemapperSF", "Tonemapper"))
#Loc: <Workspace>/Engine/Plugins/Experimental/CinematicPrestreaming/Source/CinematicPrestreamingEditor/Private/CinePrestreamingRecorderSetting.cpp:27
Scope (from outer to inner):
file
function UCinePrestreamingRecorderSetting::UCinePrestreamingRecorderSetting
Source code excerpt:
PackageDirectory.Path = TEXT("/Game/Cinematics/Prestreaming/{sequence_name}/{shot_name}/");
ShowFlagsToDisable.Add("ShowFlag.PostProcessing");
ShowFlagsToDisable.Add("ShowFlag.Lighting");
ShowFlagsToDisable.Add("ShowFlag.Atmosphere");
ShowFlagsToDisable.Add("ShowFlag.VolumetricFog");
ShowFlagsToDisable.Add("ShowFlag.VolumetricLightmap");
ShowFlagsToDisable.Add("ShowFlag.LumenGlobalIllumiination");
ShowFlagsToDisable.Add("ShowFlag.LumenReflections");
#Associated Variable and Callsites
This variable is associated with another variable named PostProcessing
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Engine/Plugins/Compositing/OpenColorIO/Source/OpenColorIO/Private/OpenColorIORendering.cpp:107
Scope (from outer to inner):
file
function void FOpenColorIORendering::AddPass_RenderThread
Source code excerpt:
const float EngineDisplayGamma = View.Family->RenderTarget->GetDisplayGamma();
// There is a special case where post processing and tonemapper are disabled. In this case tonemapper applies a static display Inverse of Gamma which defaults to 2.2.
// In the case when Both PostProcessing and ToneMapper are disabled we apply gamma manually. In every other case we apply inverse gamma before applying OCIO.
float DisplayGamma = (View.Family->EngineShowFlags.Tonemapper == 0) || (View.Family->EngineShowFlags.PostProcessing == 0) ? DefaultDisplayGamma : DefaultDisplayGamma / EngineDisplayGamma;
FOpenColorIORendering::AddPass_RenderThread(
GraphBuilder,
View,
View.GetFeatureLevel(),
Input,
#Loc: <Workspace>/Engine/Plugins/Experimental/ColorCorrectRegions/Source/ColorCorrectRegions/Private/ColorCorrectRegionsSceneViewExtension.cpp:199
Scope (from outer to inner):
file
namespace anonymous
function bool ViewSupportsRegions
Source code excerpt:
bool ViewSupportsRegions(const FSceneView& View)
{
return View.Family->EngineShowFlags.PostProcessing &&
View.Family->EngineShowFlags.PostProcessMaterial;
}
// A helper function for getting the right shader for SDF based CCRs.
TShaderMapRef<FColorCorrectRegionMaterialPS> GetRegionShader(const FGlobalShaderMap* GlobalShaderMap, EColorCorrectRegionsType RegionType, FColorCorrectGenericPS::ETemperatureType TemperatureType, bool bIsAdvanced, bool bUseStencil)
{
#Loc: <Workspace>/Engine/Plugins/Experimental/Water/Source/Runtime/Private/WaterSubsystem.cpp:676
Scope (from outer to inner):
file
function void UWaterSubsystem::ComputeUnderwaterPostProcess
Source code excerpt:
UWorld* World = GetWorld();
if ((World == nullptr) || (SceneView->Family->EngineShowFlags.PostProcessing == 0))
{
return;
}
const float PrevDepthUnderwater = CachedDepthUnderwater;
CachedDepthUnderwater = -1;
#Loc: <Workspace>/Engine/Plugins/Media/MediaIOFramework/Source/MediaIOCore/Private/MediaCaptureSceneViewExtension.h:44
Scope (from outer to inner):
file
class class FMediaCaptureSceneViewExtension : public FSceneViewExtensionBase
function virtual void SetupView
Source code excerpt:
if (bValidPhase)
{
// Copied from PostProcessing.h
if (InView.GetFeatureLevel() >= ERHIFeatureLevel::SM5)
{
bPostProcessingEnabled =
InView.Family->EngineShowFlags.PostProcessing &&
!InView.Family->EngineShowFlags.VisualizeDistanceFieldAO &&
!InView.Family->EngineShowFlags.VisualizeShadingModels &&
!InView.Family->EngineShowFlags.VisualizeVolumetricCloudConservativeDensity &&
!InView.Family->EngineShowFlags.VisualizeVolumetricCloudEmptySpaceSkipping &&
!InView.Family->EngineShowFlags.ShaderComplexity;
}
else
{
bPostProcessingEnabled = InView.Family->EngineShowFlags.PostProcessing && !InView.Family->EngineShowFlags.ShaderComplexity && IsMobileHDR();
}
if (CapturePhase != EMediaCapturePhase::BeforePostProcessing && CapturePhase != EMediaCapturePhase::EndFrame)
{
if (!bPostProcessingEnabled)
{
#Loc: <Workspace>/Engine/Plugins/Runtime/nDisplay/Source/DisplayCluster/Private/Render/DisplayDevice/Proxy/DisplayClusterDisplayDeviceProxy_OpenColorIO.cpp:17
Scope (from outer to inner):
file
namespace UE::DisplayCluster
function static inline float GetDisplayGamma
Source code excerpt:
// There is a special case where post processing and tonemapper are disabled. In this case tonemapper applies a static display Inverse of Gamma which defaults to 2.2.
// In the case when Both PostProcessing and ToneMapper are disabled we apply gamma manually. In every other case we apply inverse gamma before applying OCIO.
const float DisplayGamma = (InViewportContext.RenderThreadData.EngineShowFlags.Tonemapper == 0) || (InViewportContext.RenderThreadData.EngineShowFlags.PostProcessing == 0) ? DefaultDisplayGamma : DefaultDisplayGamma / EngineDisplayGamma;
return DisplayGamma;
}
};
FDisplayClusterDisplayDeviceProxy_OpenColorIO::FDisplayClusterDisplayDeviceProxy_OpenColorIO(FOpenColorIOColorConversionSettings& InColorConversionSettings)
#Loc: <Workspace>/Engine/Plugins/Runtime/nDisplay/Source/DisplayCluster/Private/Render/Viewport/DisplayClusterViewportManager.cpp:681
Scope (from outer to inner):
file
function FSceneViewFamily::ConstructionValues FDisplayClusterViewportManager::CreateViewFamilyConstructionValues
Source code excerpt:
{
// Disable postprocess for preview
InEngineShowFlags.PostProcessing = 0;
}
switch (InFrameTarget.CaptureMode)
{
case EDisplayClusterViewportCaptureMode::Chromakey:
case EDisplayClusterViewportCaptureMode::Lightcard:
#Loc: <Workspace>/Engine/Plugins/Runtime/nDisplay/Source/DisplayCluster/Private/Render/Viewport/DisplayClusterViewport_OpenColorIO.cpp:55
Scope (from outer to inner):
file
function float FDisplayClusterViewport_OpenColorIO::GetDisplayGamma
Source code excerpt:
// There is a special case where post processing and tonemapper are disabled. In this case tonemapper applies a static display Inverse of Gamma which defaults to 2.2.
// In the case when Both PostProcessing and ToneMapper are disabled we apply gamma manually. In every other case we apply inverse gamma before applying OCIO.
const float DisplayGamma = (InViewportContext.RenderThreadData.EngineShowFlags.Tonemapper == 0) || (InViewportContext.RenderThreadData.EngineShowFlags.PostProcessing == 0) ? DefaultDisplayGamma : DefaultDisplayGamma / EngineDisplayGamma;
return DisplayGamma;
}
bool FDisplayClusterViewport_OpenColorIO::AddPass_RenderThread(FRDGBuilder& GraphBuilder, const FDisplayClusterViewport_Context& InViewportContext,
FRHITexture2D* InputTextureRHI, const FIntRect& InputRect, FRHITexture2D* OutputTextureRHI, const FIntRect& OutputRect, bool bUnpremultiply, bool bInvertAlpha) const
#Loc: <Workspace>/Engine/Plugins/Runtime/nDisplay/Source/DisplayClusterShaders/Private/Shaders/DisplayClusterShadersPreprocess_UVLightCards.cpp:207
Scope (from outer to inner):
file
function bool FDisplayClusterShadersPreprocess_UVLightCards::RenderPreprocess_UVLightCards
Source code excerpt:
// LightCard settings from the FDisplayClusterViewportManager::ConfigureViewFamily
{
EngineShowFlags.PostProcessing = 0;
EngineShowFlags.SetAtmosphere(0);
EngineShowFlags.SetFog(0);
EngineShowFlags.SetVolumetricFog(0);
EngineShowFlags.SetMotionBlur(0); // motion blur doesn't work correctly with scene captures.
EngineShowFlags.SetSeparateTranslucency(0);
EngineShowFlags.SetHMDDistortion(0);
#Loc: <Workspace>/Engine/Source/Editor/Cascade/Private/Cascade.cpp:3956
Scope (from outer to inner):
file
function void FCascade::OnTogglePostProcess
Source code excerpt:
if (PreviewViewport.IsValid() && PreviewViewport->GetViewportClient().IsValid())
{
PreviewViewport->GetViewportClient()->EngineShowFlags.PostProcessing = !PreviewViewport->GetViewportClient()->EngineShowFlags.PostProcessing;
PreviewViewport->RefreshViewport();
}
}
bool FCascade::IsTogglePostProcessChecked() const
{
if (PreviewViewport.IsValid() && PreviewViewport->GetViewportClient().IsValid())
{
return PreviewViewport->GetViewportClient()->EngineShowFlags.PostProcessing;
}
else
{
return false;
}
}
#Loc: <Workspace>/Engine/Source/Runtime/Core/Public/HAL/IConsoleManager.h:845
Scope: file
Source code excerpt:
/**
* Create a reference to a show flag variable
* @param CVarName must not be 0, e.g. "Show.PostProcessing"
* @param FlagName must not be 0, e.g. "PostProcessing"
* @param BitNumber in the memory defined by Force0MaskPtr and Force1MaskPtr
* @param Force0MaskPtr memory that contains the bits that should be forced to 0
* @param Force1MaskPtr memory that contains the bits that should be forced to 1
* @param Help must not be 0
* @param Flags bitmask combined from EConsoleVariableFlags
*/
virtual IConsoleVariable* RegisterConsoleVariableBitRef(const TCHAR* CVarName, const TCHAR* FlagName, uint32 BitNumber, uint8* Force0MaskPtr, uint8* Force1MaskPtr, const TCHAR* Help, uint32 Flags = ECVF_Default) = 0;
// ----------
/**
* The sinks are only called if a change has been done since the last time
* Should be called in very few points:
* - after ini file loading
* - after user console input
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Classes/Camera/CameraComponent.h:235
Scope (from outer to inner):
file
class class UCameraComponent : public USceneComponent
Source code excerpt:
float AdditiveFOVOffset;
/** Optional extra PostProcessing blends stored for this camera. They are not applied automatically in GetCameraView. */
TArray<FPostProcessSettings> ExtraPostProcessBlends;
TArray<float> ExtraPostProcessBlendWeights;
public:
/** Applies the given additive offset, preserving any existing offset */
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/PlayerCameraManager.cpp:409
Scope (from outer to inner):
file
function void APlayerCameraManager::UpdateViewTarget
Source code excerpt:
}
// Take into account Mesh Translation so it takes into account the PostProcessing we do there.
// @fixme, can crash in certain BP cases where default mesh is null
// APawn* TPawn = Cast<APawn>(OutVT.Target);
// if ((TPawn != NULL) && (TPawn->Mesh != NULL))
// {
// Loc += FQuatRotationMatrix(OutVT.Target->GetActorQuat()).TransformVector(TPawn->Mesh->RelativeLocation - GetDefault<APawn>(TPawn->GetClass())->Mesh->RelativeLocation);
// }
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/SceneView.cpp:1053
Scope (from outer to inner):
file
function FSceneView::FSceneView
Source code excerpt:
}
if (Family->bResolveScene && Family->EngineShowFlags.PostProcessing)
{
EyeAdaptationViewState = State;
// When rendering in stereo we want to use the same exposure for both eyes.
if (IStereoRendering::IsASecondaryView(*this))
{
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/SceneView.cpp:1106
Scope (from outer to inner):
file
function void FSceneView::SetupAntiAliasingMethod
Source code excerpt:
if (Family)
{
const bool bWillApplyTemporalAA = Family->EngineShowFlags.PostProcessing || bIsPlanarReflection;
if (!bWillApplyTemporalAA || !Family->EngineShowFlags.AntiAliasing)
{
AntiAliasingMethod = AAM_None;
}
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlags.h:299
Scope: file
Source code excerpt:
* not optimized but doesn't have to be
* Tolerates whitespace and user error, as user might manipulate the data
* @param In e.g. TEXT("PostProcessing,PostProcessingTonemapper=0,AmbientCubemap=1")
* @return true:success, false:parse error detected
*/
ENGINE_API bool SetFromString(const TCHAR* In);
/**
* @param Name e.g. TEXT("EyeAdaptation")
* @param CommaSeparatedNames leave 0 for normal purpose, is used internally for the grouping feature
* @return -1 if not found
*/
ENGINE_API static int32 FindIndexByName(const TCHAR* Name, const TCHAR *CommaSeparatedNames = 0);
/**
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlags.h:323
Scope: file
Source code excerpt:
/**
* @param InIndex can be from FindIndexByName() or IterateAllFlags()
* @return empty string if not found, otherwise name of the flag e.g. FString(TEXT("PostProcessing"))
*/
ENGINE_API static FString FindNameByIndex(uint32 InIndex);
/**
* Allows to iterate through all flags (if you want to change or read the actual flag settings you need to pass in your own instance of FEngineShowFlags).
* Use this function instead of writing your own parser.
* implement a class with
* bool OnEngineShowFlag(uint32 InIndex, const FString& InName)
* which should return true to parse further
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:19
Scope: file
Source code excerpt:
/** Affects all postprocessing features, depending on viewmode this is on or off, for now SHOWFLAG_ALWAYS_ACCESSIBLE because it's used by ReflectionEnviromentCapture */
SHOWFLAG_ALWAYS_ACCESSIBLE(PostProcessing, SFG_Hidden, NSLOCTEXT("UnrealEd", "PostProcessingSF", "Post-processing"))
/** Bloom, for now SHOWFLAG_ALWAYS_ACCESSIBLE because it's exposed in SceneCapture */
SHOWFLAG_ALWAYS_ACCESSIBLE(Bloom, SFG_PostProcess, NSLOCTEXT("UnrealEd", "BloomSF", "Bloom"))
/** Local Exposure, for now SHOWFLAG_ALWAYS_ACCESSIBLE because it's exposed in SceneCapture */
SHOWFLAG_ALWAYS_ACCESSIBLE(LocalExposure, SFG_PostProcess, NSLOCTEXT("UnrealEd", "LocalExposureSF", "Local Exposure"))
/** HDR->LDR conversion is done through a tone mapper (otherwise linear mapping is used) */
SHOWFLAG_FIXED_IN_SHIPPING(1, Tonemapper, SFG_PostProcess, NSLOCTEXT("UnrealEd", "TonemapperSF", "Tonemapper"))
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/DeferredShadingRenderer.cpp:3305
Scope (from outer to inner):
file
function void FDeferredShadingSceneRenderer::Render
Source code excerpt:
RDG_EVENT_SCOPE(GraphBuilder, "PostProcessing");
RDG_GPU_STAT_SCOPE(GraphBuilder, Postprocessing);
SCOPED_NAMED_EVENT(PostProcessing, FColor::Emerald);
GraphBuilder.SetCommandListStat(GET_STATID(STAT_CLM_PostProcessing));
FPostProcessingInputs PostProcessingInputs;
PostProcessingInputs.ViewFamilyTexture = ViewFamilyTexture;
PostProcessingInputs.CustomDepthTexture = SceneTextures.CustomDepth.Depth;
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/MobileShadingRenderer.cpp:2230
Scope (from outer to inner):
file
function void FMobileSceneRenderer::PreTonemapMSAA
Source code excerpt:
{
// iOS only
bool bOnChipPP = GSupportsRenderTargetFormat_PF_FloatRGBA && GSupportsShaderFramebufferFetch && ViewFamily.EngineShowFlags.PostProcessing;
bool bOnChipPreTonemapMSAA = bOnChipPP && IsMetalMobilePlatform(ViewFamily.GetShaderPlatform()) && (NumMSAASamples > 1);
if (!bOnChipPreTonemapMSAA || bGammaSpace)
{
return;
}
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessEyeAdaptation.cpp:349
Scope (from outer to inner):
file
function bool IsAutoExposureDebugMode
Source code excerpt:
EngineShowFlags.CollisionVisibility ||
EngineShowFlags.CollisionPawn ||
!EngineShowFlags.PostProcessing;
}
float CalculateFixedAutoExposure(const FViewInfo& View)
{
const float LuminanceMax = LuminanceMaxFromLensAttenuation();
return EV100ToLuminance(LuminanceMax, View.Family->ExposureSettings.FixedEV100);
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessMaterial.cpp:910
Scope (from outer to inner):
file
function static bool IsPostProcessMaterialsEnabledForView
Source code excerpt:
static bool IsPostProcessMaterialsEnabledForView(const FViewInfo& View)
{
if (!View.Family->EngineShowFlags.PostProcessing ||
!View.Family->EngineShowFlags.PostProcessMaterial ||
View.Family->EngineShowFlags.VisualizeShadingModels ||
CVarPostProcessingDisableMaterials.GetValueOnRenderThread() != 0)
{
return false;
}
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessMotionBlur.cpp:113
Scope (from outer to inner):
file
function bool IsMotionBlurEnabled
Source code excerpt:
const FSceneViewFamily& ViewFamily = *View.Family;
return ViewFamily.EngineShowFlags.PostProcessing
&& ViewFamily.EngineShowFlags.MotionBlur
&& View.FinalPostProcessSettings.MotionBlurAmount > 0.001f
&& View.FinalPostProcessSettings.MotionBlurMax > 0.001f
&& ViewFamily.bRealtimeUpdate
&& MotionBlurQuality > 0
&& (CVarAllowMotionBlurInVR->GetInt() != 0 || !GEngine->StereoRenderingDevice.IsValid() || !GEngine->StereoRenderingDevice->IsStereoEnabled());
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessTonemap.cpp:137
Scope (from outer to inner):
file
namespace anonymous
namespace TonemapperPermutation
function FCommonDomain BuildCommonPermutationDomain
Source code excerpt:
if (bGammaOnly ||
(Family->EngineShowFlags.Tonemapper == 0) ||
(Family->EngineShowFlags.PostProcessing == 0))
{
PermutationVector.Set<FTonemapperGammaOnlyDim>(true);
return PermutationVector;
}
const FPostProcessSettings& Settings = View.FinalPostProcessSettings;
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessing.cpp:181
Scope (from outer to inner):
file
function bool IsPostProcessingEnabled
Source code excerpt:
{
return
View.Family->EngineShowFlags.PostProcessing &&
!View.Family->EngineShowFlags.VisualizeDistanceFieldAO &&
!View.Family->EngineShowFlags.VisualizeShadingModels &&
!View.Family->EngineShowFlags.VisualizeVolumetricCloudConservativeDensity &&
!View.Family->EngineShowFlags.VisualizeVolumetricCloudEmptySpaceSkipping &&
!View.Family->EngineShowFlags.ShaderComplexity;
}
else
{
return View.Family->EngineShowFlags.PostProcessing && !View.Family->EngineShowFlags.ShaderComplexity && IsMobileHDR();
}
}
bool IsPostProcessingWithAlphaChannelSupported()
{
return CVarPostProcessingPropagateAlpha.GetValueOnAnyThread() != 0;
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessing.cpp:1330
Scope (from outer to inner):
file
function void AddPostProcessingPasses
Source code excerpt:
SceneColor = AddAfterPass(EPass::VisualizeDepthOfField, SceneColor);
}
// Minimal PostProcessing - Separate translucency composition and gamma-correction only.
else
{
PassSequence.SetEnabled(EPass::MotionBlur, false);
PassSequence.SetEnabled(EPass::PostProcessMaterialBeforeBloom, false);
PassSequence.SetEnabled(EPass::Tonemap, true);
PassSequence.SetEnabled(EPass::FXAA, false);
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/ReflectionEnvironmentCapture.cpp:1288
Scope (from outer to inner):
file
function void CaptureSceneIntoScratchCubemap
Source code excerpt:
// Disable features that are not desired when capturing the scene
ViewFamily.EngineShowFlags.PostProcessing = 0;
ViewFamily.EngineShowFlags.MotionBlur = 0;
ViewFamily.EngineShowFlags.SetOnScreenDebug(false);
ViewFamily.EngineShowFlags.HMDDistortion = 0;
// Conditionally exclude particles and light functions as they are usually dynamic, and can't be captured well
ViewFamily.EngineShowFlags.Particles = 0;
ViewFamily.EngineShowFlags.LightFunctions = abs(GReflectionCaptureEnableLightFunctions) ? 1 : 0;
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/SceneCaptureRendering.cpp:749
Scope (from outer to inner):
file
function void SetupViewFamilyForSceneCapture
Source code excerpt:
if (bCaptureSceneColor)
{
ViewFamily.EngineShowFlags.PostProcessing = 0;
ViewInitOptions.OverlayColor = FLinearColor::Black;
}
FSceneView* View = new FSceneView(ViewInitOptions);
GetShowOnlyAndHiddenComponents(SceneCaptureComponent, View->HiddenPrimitives, View->ShowOnlyPrimitives);
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/SceneRendering.cpp:2885
Scope (from outer to inner):
file
function FSceneRenderer::FSceneRenderer
Source code excerpt:
// Check if the translucency are allowed to be rendered after DOF, if not, translucency after DOF will be rendered in standard translucency.
{
bool SeparateTranslucencyEnabled = ViewFamily.EngineShowFlags.PostProcessing // Used for reflection captures.
&& !ViewFamily.UseDebugViewPS()
&& ViewFamily.EngineShowFlags.SeparateTranslucency;
const bool bIsMobile = ViewFamily.GetFeatureLevel() == ERHIFeatureLevel::ES3_1;
if (bIsMobile)
{