You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Originally reviewed in review 22330833. #rb andrew.lauritzen, Ola.Olsson, Sebastien.Hillaire #jira FORT-515227 #rnx #preflight 6356c6700313c24974e8f7dd [CL 22749579 by tim doerries in ue5-main branch]
90 lines
2.7 KiB
C++
90 lines
2.7 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
VirtualShadowMapProjection.h
|
|
=============================================================================*/
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "RenderGraphResources.h"
|
|
#include "ScreenSpaceDenoise.h"
|
|
|
|
class FVirtualShadowMapClipmap;
|
|
|
|
struct FTiledVSMProjection
|
|
{
|
|
FRDGBufferRef DrawIndirectParametersBuffer;
|
|
FRDGBufferRef DispatchIndirectParametersBuffer;
|
|
FRDGBufferSRVRef TileListDataBufferSRV;
|
|
uint32 TileSize;
|
|
};
|
|
|
|
// Note: Must match the definitions in VirtualShadowMapPageManagement.usf!
|
|
enum class EVirtualShadowMapProjectionInputType
|
|
{
|
|
GBuffer = 0,
|
|
HairStrands = 1,
|
|
GBufferAndSingleLayerWaterDepth = 2
|
|
};
|
|
const TCHAR* ToString(EVirtualShadowMapProjectionInputType In);
|
|
|
|
void RenderVirtualShadowMapProjection(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FMinimalSceneTextures& SceneTextures,
|
|
const FViewInfo& View, int32 ViewIndex,
|
|
FVirtualShadowMapArray& VirtualShadowMapArray,
|
|
const FIntRect ScissorRect,
|
|
EVirtualShadowMapProjectionInputType InputType,
|
|
const TSharedPtr<FVirtualShadowMapClipmap>& Clipmap,
|
|
bool bModulateRGB,
|
|
FTiledVSMProjection* TiledVSMProjection,
|
|
FRDGTextureRef OutputShadowMaskTexture);
|
|
|
|
void RenderVirtualShadowMapProjection(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FMinimalSceneTextures& SceneTextures,
|
|
const FViewInfo& View, int32 ViewIndex,
|
|
FVirtualShadowMapArray& VirtualShadowMapArray,
|
|
const FIntRect ScissorRect,
|
|
EVirtualShadowMapProjectionInputType InputType,
|
|
const FLightSceneInfo& LightSceneInfo,
|
|
int32 VirtualShadowMapId,
|
|
FRDGTextureRef OutputShadowMaskTexture);
|
|
|
|
FRDGTextureRef CreateVirtualShadowMapMaskBits(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FMinimalSceneTextures& SceneTextures,
|
|
FVirtualShadowMapArray& VirtualShadowMapArray,
|
|
const TCHAR* Name);
|
|
|
|
void RenderVirtualShadowMapProjectionOnePass(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FMinimalSceneTextures& SceneTextures,
|
|
const FViewInfo& View, int32 ViewIndex,
|
|
FVirtualShadowMapArray& VirtualShadowMapArray,
|
|
EVirtualShadowMapProjectionInputType InputType,
|
|
FRDGTextureRef ShadowMaskBits);
|
|
|
|
void CompositeVirtualShadowMapMask(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FViewInfo& View,
|
|
const FIntRect ScissorRect,
|
|
const FRDGTextureRef Input,
|
|
bool bDirectionalLight,
|
|
bool bModulateRGB,
|
|
FTiledVSMProjection* TiledVSMProjection,
|
|
FRDGTextureRef OutputShadowMaskTexture);
|
|
|
|
void CompositeVirtualShadowMapFromMaskBits(
|
|
FRDGBuilder& GraphBuilder,
|
|
const FMinimalSceneTextures& SceneTextures,
|
|
const FViewInfo& View,
|
|
const FIntRect ScissorRect,
|
|
FVirtualShadowMapArray& VirtualShadowMapArray,
|
|
EVirtualShadowMapProjectionInputType InputType,
|
|
int32 VirtualShadowMapId,
|
|
FRDGTextureRef ShadowMaskBits,
|
|
FRDGTextureRef OutputShadowMaskTexture);
|
|
|