Files
UnrealEngineUWP/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessBloomSetup.h
tiago costa e963280676 Apply local exposure when calculating bloom.
- Otherwise bloom intensity will not properly match the bright regions of the final image.
- Can be disabled using r.Bloom.ApplyLocalExposure.
- For gaussian bloom, local exposure is applied during the setup pass.
- For FFT bloom, local exposure is applied using an extra pass before convolution.

- Implemented AddApplyLocalExposurePass which apply local exposure to an input texture.

#rb Guillaume.Abadie
#preflight 62b5f2e8bd4bf89e21c78caa
#jira FORT-460700

[CL 20812852 by tiago costa in ue5-main branch]
2022-06-24 13:53:19 -04:00

46 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "ScreenPass.h"
class FSceneDownsampleChain;
class FEyeAdaptationParameters;
enum class EBloomQuality : uint32
{
Disabled,
Q1,
Q2,
Q3,
Q4,
Q5,
MAX
};
EBloomQuality GetBloomQuality();
FScreenPassTexture AddGaussianBloomPasses(FRDGBuilder& GraphBuilder, const FViewInfo& View, const FSceneDownsampleChain* SceneDownsampleChain);
struct FBloomSetupInputs
{
// [Required]: The intermediate scene color being processed.
FScreenPassTexture SceneColor;
// [Required]: The scene eye adaptation texture.
FRDGTextureRef EyeAdaptationTexture = nullptr;
// [Required]: The bloom threshold to apply. Must be >0.
float Threshold = 0.0f;
// [Optional] Eye adaptation parameters.
const FEyeAdaptationParameters* EyeAdaptationParameters = nullptr;
// [Optional] Luminance bilateral grid. If this is null, local exposure is disabled.
FRDGTextureRef LocalExposureTexture = nullptr;
// [Optional] Blurred luminance texture used to calculate local exposure.
FRDGTextureRef BlurredLogLuminanceTexture = nullptr;
};
FScreenPassTexture AddBloomSetupPass(FRDGBuilder& GraphBuilder, const FViewInfo& View, const FBloomSetupInputs& Inputs);