Files
UnrealEngine/Engine/Shaders/Private/HairStrands/HairStrandsVisibilityUtils.ush
2025-05-18 13:04:45 +08:00

24 lines
817 B
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
// Convert a FHairSample into a FGufferData
FGBufferData HairSampleToGBufferData(in FHairSample In, in float InDualScatteringRoughnessOverride=0)
{
FGBufferData Out = (FGBufferData)0;
Out.ShadingModelID = SHADINGMODELID_HAIR;
Out.WorldNormal = In.Tangent;
Out.BaseColor = In.BaseColor;
Out.Roughness = In.Roughness;
Out.Specular = In.Specular;
Out.Metallic = 0; // Scattering;
Out.Depth = ConvertFromDeviceZ(In.Depth);
Out.GBufferAO = 1;
Out.CustomData = float4(InDualScatteringRoughnessOverride, 0, In.Backlit, 0);
Out.IndirectIrradiance = 1000000;
Out.DiffuseColor = 0;
Out.SpecularColor = 0;
Out.PrecomputedShadowFactors = 1;
Out.PerObjectGBufferData = HasHairFlags(In.Flags, HAIR_FLAGS_CAST_CONTACT_SHADOW) ? 1u : 0u;
return Out;
}