VRTowerDef/Plugins/MetaXR/Shaders/Private/HardOcclusions.usf

37 lines
1.1 KiB
Plaintext

// Copyright Epic Games, Inc. All Rights Reserved.
#include "/Engine/Public/Platform.ush"
#define NUM_VIEWS 2
// PS Textures Parameters
Texture2DArray EnvironmentDepthTexture;
SamplerState EnvironmentDepthSampler;
float2 DepthFactors;
float4x4 ScreenToDepthMatrices[NUM_VIEWS];
int DepthViewId;
void HardOcclusionsPS(
noperspective float4 UVAndScreenPos : TEXCOORD0,
float4 SvPosition : SV_POSITION,
#if INSTANCED_STEREO
in uint InstanceId : SV_InstanceID,
#elif MOBILE_MULTI_VIEW
in uint ViewId : SV_ViewID,
#endif
out float4 OutColor : SV_Target0,
out float OutDepth : SV_DEPTH)
{
#if INSTANCED_STEREO
uint ViewId = InstanceId & 1;
#elif !MOBILE_MULTI_VIEW
uint ViewId = DepthViewId;
#endif
float4 TexCoordH = mul(ScreenToDepthMatrices[ViewId], float4(UVAndScreenPos.x, 1.0f - UVAndScreenPos.y, 0.0, 1.0));
float3 TexCoord = float3(TexCoordH.x / TexCoordH.w, TexCoordH.y / TexCoordH.w, ViewId);
float InputDepthEye = EnvironmentDepthTexture.Sample(EnvironmentDepthSampler, TexCoord).r;
float DepthEye = InputDepthEye * DepthFactors.x + DepthFactors.y;
OutDepth = DepthEye;
OutColor = float4(0.0, 0.0, 0.0, 1.0);
}