You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Additional fix for indirect capsule shadows detected by devs in editor Indirect capsule shadows overwrite the result of the screen grid DFAO, which results in two issues. The first is that the indirect capsule shadows changes the size of the BentNormalAOTexture, so the PIE renderer samples the texture at incorrect UV coordinates. The second is that each view iteration will overwrite the BentNormalAOTexture, so the multiview result is the last per-view texture. The solution is to also call this function per-view. The previous changes include creating a per-view bent normal texture before copying back into an atlased texture. This involves a set of changes for UV sampling (e.g. in UpsampleDFAO) and setting up the culling properly in BuildTileCones. #rb tiago.costa [CL 26263184 by jeffrey liu in ue5-main branch]
38 lines
1.5 KiB
C++
38 lines
1.5 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
DistanceFieldLightingPost.h
|
|
=============================================================================*/
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "SceneRendering.h"
|
|
|
|
class FDistanceFieldAOParameters;
|
|
|
|
extern void AllocateOrReuseAORenderTarget(FRDGBuilder& GraphBuilder, const FViewInfo& View, FRDGTextureRef& Target, const TCHAR* Name, EPixelFormat Format, ETextureCreateFlags Flags = TexCreate_None);
|
|
|
|
extern void UpdateHistory(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FViewInfo& View,
|
|
const TCHAR* BentNormalHistoryRTName,
|
|
TRDGUniformBufferRef<FSceneTextureUniformParameters> SceneTexturesUniformBuffer,
|
|
FRDGTextureRef VelocityTexture,
|
|
FRDGTextureRef BentNormalInterpolation,
|
|
FRDGTextureRef DistanceFieldNormal,
|
|
/** Contains last frame's history, if non-NULL. This will be updated with the new frame's history. */
|
|
FIntRect* DistanceFieldAOHistoryViewRect,
|
|
TRefCountPtr<IPooledRenderTarget>* BentNormalHistoryState,
|
|
/** Output of Temporal Reprojection for the next step in the pipeline. */
|
|
FRDGTextureRef& BentNormalHistoryOutput,
|
|
const FDistanceFieldAOParameters& Parameters);
|
|
|
|
extern void UpsampleBentNormalAO(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FViewInfo& View,
|
|
TRDGUniformBufferRef<FSceneTextureUniformParameters> SceneTexturesUniformBuffer,
|
|
FRDGTextureRef SceneColorTexture,
|
|
FRDGTextureRef DistanceFieldAOBentNormal,
|
|
bool bModulateSceneColor);
|