UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HairStrandsTransmittance.cpp File Reference

Classes

struct  FHairStrandsTransmittanceLightParams
 
class  FHairStrandsClearTransmittanceMaskCS
 
class  FHairStrandsVoxelTransmittanceMaskCS
 
class  FHairStrandsDeepShadowTransmittanceMaskCS
 
struct  FHairStrandsDeepShadowTransmittanceLightParams
 
class  FHairStrandsVoxelShadowMaskPS
 
class  FHairStrandsDeepShadowMaskPS
 
struct  FHairStrandsDeepShadowParams
 

Enumerations

enum class  EHairTransmittancePassType : uint8 { PerLight , OnePass }
 

Functions

FVector4f ComputeDeepShadowLayerDepths (float LayerDistribution)
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsClearTransmittanceMaskCS, "/Engine/Private/HairStrands/HairStrandsDeepTransmittanceMask.usf", "MainCS", SF_Compute)
 
FHairStrandsTransmittanceMaskData CreateDummyHairStrandsTransmittanceMaskData (FRDGBuilder &GraphBuilder, FGlobalShaderMap *ShaderMap)
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsVoxelTransmittanceMaskCS, "/Engine/Private/HairStrands/HairStrandsDeepTransmittanceMask.usf", "MainCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsDeepShadowTransmittanceMaskCS, "/Engine/Private/HairStrands/HairStrandsDeepTransmittanceMask.usf", "MainCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsVoxelShadowMaskPS, "/Engine/Private/HairStrands/HairStrandsDeepShadowMask.usf", "MainPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsDeepShadowMaskPS, "/Engine/Private/HairStrands/HairStrandsDeepShadowMask.usf", "MainPS", SF_Pixel)
 
FHairStrandsTransmittanceMaskData RenderHairStrandsOnePassTransmittanceMask (FRDGBuilder &GraphBuilder, const FViewInfo &View, int32 ViewIndex, FRDGTextureRef ShadowMaskBits, FVirtualShadowMapArray &VirtualShadowMapArray)
 Output hair transmittance per hair sample for all lights using the forward cluster lights.
 
FHairStrandsTransmittanceMaskData RenderHairStrandsTransmittanceMask (FRDGBuilder &GraphBuilder, const FViewInfo &View, int32 ViewIndex, const FLightSceneInfo *LightSceneInfo, const bool bProjectingForForwardShading, FRDGTextureRef ScreenShadowMaskSubPixelTexture)
 
void RenderHairStrandsShadowMask (FRDGBuilder &GraphBuilder, const TArray< FViewInfo > &Views, const FLightSceneInfo *LightSceneInfo, const TArrayView< FVisibleLightInfo > &VisibleLightInfos, const bool bProjectingForForwardShading, FRDGTextureRef OutShadowMask)
 Write opaque hair shadow onto screen shadow mask to have fine hair details cast onto opaque geometries.
 
void RenderHairStrandsDeepShadowMask (FRDGBuilder &GraphBuilder, const TArray< FViewInfo > &Views, const FLightSceneInfo *LightSceneInfo, const TArrayView< FVisibleLightInfo > &VisibleLightInfos, FRDGTextureRef OutShadowMask)
 Write opaque hair shadow onto screen shadow mask to have fine hair details cast onto opaque geometries (deep shadow caster only)
 

Enumeration Type Documentation

◆ EHairTransmittancePassType

Enumerator
PerLight 
OnePass 

Function Documentation

◆ ComputeDeepShadowLayerDepths()

FVector4f ComputeDeepShadowLayerDepths ( float  LayerDistribution)

◆ CreateDummyHairStrandsTransmittanceMaskData()

FHairStrandsTransmittanceMaskData CreateDummyHairStrandsTransmittanceMaskData ( FRDGBuilder GraphBuilder,
FGlobalShaderMap ShaderMap 
)

◆ IMPLEMENT_GLOBAL_SHADER() [1/5]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsClearTransmittanceMaskCS  ,
"/Engine/Private/HairStrands/HairStrandsDeepTransmittanceMask.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/5]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsDeepShadowMaskPS  ,
"/Engine/Private/HairStrands/HairStrandsDeepShadowMask.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/5]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsDeepShadowTransmittanceMaskCS  ,
"/Engine/Private/HairStrands/HairStrandsDeepTransmittanceMask.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/5]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsVoxelShadowMaskPS  ,
"/Engine/Private/HairStrands/HairStrandsDeepShadowMask.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/5]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsVoxelTransmittanceMaskCS  ,
"/Engine/Private/HairStrands/HairStrandsDeepTransmittanceMask.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ RenderHairStrandsDeepShadowMask()

void RenderHairStrandsDeepShadowMask ( FRDGBuilder GraphBuilder,
const TArray< FViewInfo > &  Views,
const FLightSceneInfo LightSceneInfo,
const TArrayView< FVisibleLightInfo > &  VisibleLightInfos,
FRDGTextureRef  OutShadowMask 
)

Write opaque hair shadow onto screen shadow mask to have fine hair details cast onto opaque geometries (deep shadow caster only)

◆ RenderHairStrandsOnePassTransmittanceMask()

FHairStrandsTransmittanceMaskData RenderHairStrandsOnePassTransmittanceMask ( FRDGBuilder GraphBuilder,
const FViewInfo View,
int32  ViewIndex,
FRDGTextureRef  ShadowMaskBits,
FVirtualShadowMapArray VirtualShadowMapArray 
)

Output hair transmittance per hair sample for all lights using the forward cluster lights.

◆ RenderHairStrandsShadowMask()

void RenderHairStrandsShadowMask ( FRDGBuilder GraphBuilder,
const TArray< FViewInfo > &  Views,
const FLightSceneInfo LightSceneInfo,
const TArrayView< FVisibleLightInfo > &  VisibleLightInfos,
const bool  bProjectingForForwardShading,
FRDGTextureRef  OutShadowMask 
)

Write opaque hair shadow onto screen shadow mask to have fine hair details cast onto opaque geometries.

◆ RenderHairStrandsTransmittanceMask()

FHairStrandsTransmittanceMaskData RenderHairStrandsTransmittanceMask ( FRDGBuilder GraphBuilder,
const FViewInfo View,
int32  ViewIndex,
const FLightSceneInfo LightSceneInfo,
const bool  bProjectingForForwardShading,
FRDGTextureRef  ScreenShadowMaskSubPixelTexture 
)