Files
UnrealEngine/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessLocalExposure.h
2025-05-18 13:04:45 +08:00

55 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "ScreenPass.h"
class FEyeAdaptationParameters;
BEGIN_SHADER_PARAMETER_STRUCT(FLocalExposureParameters, )
SHADER_PARAMETER(float, HighlightContrastScale)
SHADER_PARAMETER(float, ShadowContrastScale)
SHADER_PARAMETER(float, DetailStrength)
SHADER_PARAMETER(float, BlurredLuminanceBlend)
SHADER_PARAMETER(float, MiddleGreyExposureCompensation)
SHADER_PARAMETER(FVector2f, BilateralGridUVScale)
SHADER_PARAMETER(float, HighlightThreshold)
SHADER_PARAMETER(float, ShadowThreshold)
SHADER_PARAMETER(float, HighlightThresholdStrength)
SHADER_PARAMETER(float, ShadowThresholdStrength)
END_SHADER_PARAMETER_STRUCT()
FLocalExposureParameters GetLocalExposureParameters(const FViewInfo& View, FIntPoint ViewRectSize, const FEyeAdaptationParameters& EyeAdaptationParameters);
FRDGTextureRef AddLocalExposureBlurredLogLuminancePass(
FRDGBuilder& GraphBuilder,
const FViewInfo& View,
const FEyeAdaptationParameters& EyeAdaptationParameters,
FScreenPassTextureSlice InputTexture);
void AddApplyLocalExposurePass(
FRDGBuilder& GraphBuilder,
const FViewInfo& View,
const FEyeAdaptationParameters& EyeAdaptationParameters,
FRDGBufferRef EyeAdaptationBuffer,
const FLocalExposureParameters& LocalExposureParamaters,
FRDGTextureRef LocalExposureTexture,
FRDGTextureRef BlurredLogLuminanceTexture,
FScreenPassTextureSlice Input,
FScreenPassTextureSlice Output,
ERDGPassFlags PassFlags);
struct FExposureFusionData
{
FScreenPassTexture Result;
FScreenPassTexture Exposures;
FScreenPassTexture Weights;
};
FExposureFusionData AddLocalExposureFusionPass(
FRDGBuilder& GraphBuilder,
const FViewInfo& View,
const FEyeAdaptationParameters& EyeAdaptationParameters,
FRDGBufferRef EyeAdaptationBuffer,
const FLocalExposureParameters& LocalExposureParamaters,
FScreenPassTextureSlice Input);