Files
UnrealEngine/Engine/Shaders/Private/ScreenVertexShader.usf
2025-05-18 13:04:45 +08:00

52 lines
1.2 KiB
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
ScreenVertexShader.usf: Filter vertex shader source.
=============================================================================*/
#include "Common.ush"
void Main(
float2 InPosition : ATTRIBUTE0,
float2 InUV : ATTRIBUTE1,
out FScreenVertexOutput Output
)
{
DrawRectangle( float4( InPosition, 0, 1 ), InUV, Output.Position, Output.UV);
}
#if USING_LAYERS
struct FScreenVertexLayeredOutput
{
FScreenVertexOutput Output;
uint FaceIndex : TEXCOORD1;
/** Controls which of the cube map faces to rasterize the primitive to, only the value from the first vertex is used. */
uint RTIndex : SV_RenderTargetArrayIndex;
};
#endif
void MainForGS(
float2 InPosition : ATTRIBUTE0,
float2 InUV : ATTRIBUTE1,
#if USING_LAYERS
in uint InstanceId : SV_InstanceID,
out FScreenVertexLayeredOutput GSOutput
#else
out FScreenVertexOutput Output
#endif
)
{
#if USING_LAYERS
GSOutput.RTIndex = InstanceId;
GSOutput.FaceIndex = InstanceId;
// this is just a wrapper of the normal function
Main(InPosition, InUV, GSOutput.Output);
#else
// this is just a wrapper of the normal function
Main(InPosition, InUV, Output);
#endif
}