Files
UnrealEngine/Engine/Plugins/Runtime/nDisplay/Shaders/Private/UVLightCardShaders.usf
2025-05-18 13:04:45 +08:00

49 lines
1.7 KiB
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
#include "/Engine/Private/Common.ush"
#include "/Engine/Generated/Material.ush"
#include "/Engine/Generated/VertexFactory.ush"
#include "SubstrateUtils.ush"
struct FUVLightCardVSToPS
{
FVertexFactoryInterpolantsVSToPS FactoryInterpolants;
float4 Position : SV_POSITION;
float4 SavedWorldPosition : POSITION1;
};
struct OutputPS
{
float4 Color : SV_Target0;
};
void MainVS(FVertexFactoryInput Input, out FUVLightCardVSToPS Output)
{
ResolvedView = ResolveView();
const FVertexFactoryIntermediates VFIntermediates = GetVertexFactoryIntermediates(Input);
Output.SavedWorldPosition = VertexFactoryGetWorldPosition(Input, VFIntermediates);
const float3x3 TangentToLocal = VertexFactoryGetTangentToLocal(Input, VFIntermediates);
const FMaterialVertexParameters VertexParameters = GetMaterialVertexParameters(Input, VFIntermediates, Output.SavedWorldPosition.xyz, TangentToLocal);
Output.SavedWorldPosition.xyz += GetMaterialWorldPositionOffset(VertexParameters);
Output.FactoryInterpolants = VertexFactoryGetInterpolantsVSToPS(Input, VFIntermediates, VertexParameters);
Output.Position = mul(Output.SavedWorldPosition, ResolvedView.TranslatedWorldToClip);
}
void MainPS(FUVLightCardVSToPS Input OPTIONAL_IsFrontFace, out float4 OutputColor : SV_Target0)
{
FMaterialPixelParameters MaterialParameters = GetMaterialPixelParameters(Input.FactoryInterpolants, Input.Position);
FPixelMaterialInputs PixelMaterialInputs;
CalcMaterialParameters(MaterialParameters, PixelMaterialInputs, Input.Position, bIsFrontFace);
GetMaterialCoverageAndClipping(MaterialParameters, PixelMaterialInputs);
OutputColor = GetMaterialProperties(PixelMaterialInputs, MaterialParameters);
}