2019-12-26 14:45:42 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2019-09-03 19:19:28 -04:00
|
|
|
#include "ScreenPass.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2019-09-03 19:19:28 -04:00
|
|
|
struct FGaussianBlurInputs
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2019-09-03 19:19:28 -04:00
|
|
|
// Friendly names of the blur passes along the X and Y axis. Used for logging and profiling.
|
|
|
|
|
const TCHAR* NameX = nullptr;
|
|
|
|
|
const TCHAR* NameY = nullptr;
|
|
|
|
|
|
|
|
|
|
// The input texture to be filtered.
|
2019-10-01 13:03:04 -04:00
|
|
|
FScreenPassTexture Filter;
|
2019-09-03 19:19:28 -04:00
|
|
|
|
|
|
|
|
// The input texture to be added after filtering.
|
2019-10-01 13:03:04 -04:00
|
|
|
FScreenPassTexture Additive;
|
2019-09-03 19:19:28 -04:00
|
|
|
|
|
|
|
|
// The color to tint when filtering.
|
|
|
|
|
FLinearColor TintColor;
|
|
|
|
|
|
|
|
|
|
// Controls the cross shape of the blur, in both X / Y directions. See r.Bloom.Cross.
|
2021-12-07 09:55:09 -05:00
|
|
|
FVector2f CrossCenterWeight = FVector2f::ZeroVector;
|
2019-09-03 19:19:28 -04:00
|
|
|
|
|
|
|
|
// The filter kernel size in percentage of the screen.
|
|
|
|
|
float KernelSizePercent = 0.0f;
|
2021-09-01 11:22:04 -04:00
|
|
|
|
|
|
|
|
bool UseMirrorAddressMode = false;
|
2014-03-14 14:13:41 -04:00
|
|
|
};
|
|
|
|
|
|
2019-10-01 13:03:04 -04:00
|
|
|
using FGaussianBlurOutputs = FScreenPassTexture;
|
|
|
|
|
|
2021-12-07 12:07:39 -05:00
|
|
|
extern RENDERER_API FGaussianBlurOutputs AddGaussianBlurPass(FRDGBuilder& GraphBuilder, const FViewInfo& View, const FGaussianBlurInputs& Inputs);
|