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

Classes

struct  HairStrandsVisibilityInternal::NodeData
 
struct  HairStrandsVisibilityInternal::NodeVis
 
struct  FRasterComputeOutput
 
class  FHairLightSampleClearVS
 
class  FHairLightSampleClearPS
 
class  FHairMaterialVS
 
class  FHairMaterialShaderElementData
 
class  FHairMaterialPS
 
class  FHairMaterialProcessor
 
class  FUpdateSampleCoverageCS
 
struct  FMaterialPassOutput
 
class  FHairAttributeDebugCS
 
class  FHairVelocityCS
 
struct  FPackedHairVisPPLL
 
class  FHairVisibilityVS< RenderMode, bCullingEnable >
 
class  FHairVisibilityShaderElementData
 
class  FHairVisibilityPS< RenderMode >
 
class  FHairVisibilityProcessor
 
class  FClearUIntGraphicPS
 
class  FCopyIndirectBufferCS
 
class  FHairVisibilityControlPointIdCompactionCS
 
class  FHairVisibilityCompactionComputeRasterCS
 
class  FHairVisibilityFillOpaqueDepthPS
 
struct  FHairPrimaryTransmittance
 
class  FHairViewTransmittanceDepthPS
 
class  FHairVisibilityDepthPS
 
class  FHairCountToCoverageCS
 
class  FVisiblityRasterComputePrepareDepthGridCS
 
class  FVisiblityRasterClassificationCS
 
class  FVisiblityRasterComputeBinningCS
 
class  FVisiblityRasterComputeCompactionCS
 
class  FVisiblityRasterComputeRasterizeCS
 
class  FVisiblityRasterComputeRasterizeMultiSampleCS
 
class  FVisiblityRasterComputeDebugCS
 
class  FVisiblityRasterHWVS
 
class  FVisiblityRasterHWPS
 
class  FVisiblityRasterComputeNaiveCS
 
class  FHairStrandsEmitSelectionPS
 
class  FHairStrandsEmitHitProxyIdPS
 
class  FHairStrandsPositionChangedCS
 

Namespaces

namespace  HairStrandsVisibilityInternal
 
namespace  HairStrands
 

Macros

#define HAIR_MATERIAL_DEBUG_OUTPUT   0
 

Typedefs

typedef FHairVisibilityVS< HairVisibilityRenderMode_MSAA_Visibility, falseTHairVisiblityVS_MSAAVisibility_NoCulling
 
typedef FHairVisibilityVS< HairVisibilityRenderMode_MSAA_Visibility, trueTHairVisiblityVS_MSAAVisibility_Culling
 
typedef FHairVisibilityVS< HairVisibilityRenderMode_Transmittance, trueTHairVisiblityVS_Transmittance
 
typedef FHairVisibilityVS< HairVisibilityRenderMode_TransmittanceAndHairCount, trueTHairVisiblityVS_TransmittanceAndHairCount
 
typedef FHairVisibilityVS< HairVisibilityRenderMode_PPLL, trueTHairVisiblityVS_PPLL
 

Enumerations

enum  EHairVisibilityRenderMode {
  HairVisibilityRenderMode_Transmittance , HairVisibilityRenderMode_PPLL , HairVisibilityRenderMode_MSAA_Visibility , HairVisibilityRenderMode_TransmittanceAndHairCount ,
  HairVisibilityRenderMode_ComputeRaster , HairVisibilityRenderMode_ComputeRasterForward , HairVisibilityRenderModeCount
}
 
enum class  EHairMaterialPassFilter : uint8 { All , EmissiveOnly , NonEmissiveOnly }
 
enum class  EHairAuxilaryPassType {
  MaterialData , MaterialData_LightChannelMask , LightChannelMask , DepthPatch ,
  DepthClear
}
 

Functions

 DECLARE_GPU_STAT (HairStrandsVisibility)
 
bool IsHairVisibilityComputeRasterEnabled ()
 
bool IsHairVisibilityComputeRasterForwardEnabled (EShaderPlatform InPlatform)
 
EHairVisibilityRenderMode GetHairVisibilityRenderMode (EShaderPlatform InPlatform)
 
bool IsMsaaEnabled (EShaderPlatform InPlatform)
 
uint32 GetMeanSamplePerPixel (EShaderPlatform InPlatform)
 
uint32 GetHairStrandsMeanSamplePerPixel (EShaderPlatform InPlatform)
 
void SetUpViewHairRenderInfo (const FViewInfo &ViewInfo, bool bEnableMSAA, FVector4f &OutHairRenderInfo, uint32 &OutHairRenderInfoBits, uint32 &OutHairComponents)
 
void SetUpViewHairRenderInfo (const FViewInfo &ViewInfo, FVector4f &OutHairRenderInfo, uint32 &OutHairRenderInfoBits, uint32 &OutHairComponents)
 
float GetHairWriteVelocityCoverageThreshold ()
 
float GetHairStrandsFullCoverageThreshold ()
 
uint32 GetHairStrandsIntCoverageThreshold ()
 
 IMPLEMENT_GLOBAL_SHADER (FHairLightSampleClearVS, "/Engine/Private/HairStrands/HairStrandsLightSample.usf", "MainVS", SF_Vertex)
 
 IMPLEMENT_GLOBAL_SHADER (FHairLightSampleClearPS, "/Engine/Private/HairStrands/HairStrandsLightSample.usf", "ClearPS", SF_Pixel)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, FHairMaterialVS, TEXT("/Engine/Private/HairStrands/HairStrandsMaterialVS.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, FHairMaterialPS, TEXT("/Engine/Private/HairStrands/HairStrandsMaterialPS.usf"), TEXT("Main"), SF_Pixel)
 
IPSOCollectorCreatePSOCollectorHairMaterial (ERHIFeatureLevel::Type FeatureLevel)
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FVisibilityMaterialPassUniformParameters, "MaterialPassParameters", SceneTextures)
 
 IMPLEMENT_GLOBAL_SHADER (FUpdateSampleCoverageCS, "/Engine/Private/HairStrands/HairStrandsVisibilityComputeSampleCoverage.usf", "MainCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FHairAttributeDebugCS, "/Engine/Private/HairStrands/HairStrandsDebug.usf", "CSMain", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FHairVelocityCS, "/Engine/Private/HairStrands/HairStrandsVelocity.usf", "MainCS", SF_Compute)
 
float GetHairFastResolveVelocityThreshold (const FIntPoint &Resolution)
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FVisibilityPassUniformParameters, "HairVisibilityPass", SceneTextures)
 
TRDGUniformBufferRef< FVisibilityPassUniformParametersCreatePassDummyTextures (FRDGBuilder &GraphBuilder)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, THairVisiblityVS_MSAAVisibility_NoCulling, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, THairVisiblityVS_MSAAVisibility_Culling, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, THairVisiblityVS_Transmittance, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, THairVisiblityVS_TransmittanceAndHairCount, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, THairVisiblityVS_PPLL, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, FHairVisibilityPS< HairVisibilityRenderMode_MSAA_Visibility >, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf"), TEXT("MainVisibility"), SF_Pixel)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, FHairVisibilityPS< HairVisibilityRenderMode_Transmittance >, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf"), TEXT("MainVisibility"), SF_Pixel)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, FHairVisibilityPS< HairVisibilityRenderMode_TransmittanceAndHairCount >, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf"), TEXT("MainVisibility"), SF_Pixel)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, FHairVisibilityPS< HairVisibilityRenderMode_PPLL >, TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf"), TEXT("MainVisibility"), SF_Pixel)
 
IPSOCollectorCreatePSOCollectorHairVisibility (ERHIFeatureLevel::Type FeatureLevel)
 
 IMPLEMENT_GLOBAL_SHADER (FClearUIntGraphicPS, "/Engine/Private/HairStrands/HairStrandsVisibilityClearPS.usf", "ClearPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FCopyIndirectBufferCS, "/Engine/Private/HairStrands/HairStrandsVisibilityCopyIndirectArg.usf", "CopyCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FHairVisibilityControlPointIdCompactionCS, "/Engine/Private/HairStrands/HairStrandsVisibilityCompaction.usf", "MainCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FHairVisibilityCompactionComputeRasterCS, "/Engine/Private/HairStrands/HairStrandsVisibilityCompactionComputeRaster.usf", "MainCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FHairVisibilityFillOpaqueDepthPS, "/Engine/Private/HairStrands/HairStrandsVisibilityFillOpaqueDepthPS.usf", "MainPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FHairViewTransmittanceDepthPS, "/Engine/Private/HairStrands/HairStrandsVisibilityTransmittanceDepthPS.usf", "MainPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FHairVisibilityDepthPS, "/Engine/Private/HairStrands/HairStrandsVisibilityDepthPS.usf", "MainPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FHairCountToCoverageCS, "/Engine/Private/HairStrands/HairStrandsCoverage.usf", "MainCS", SF_Compute)
 
void AddMeshDrawTransitionPass (FRDGBuilder &GraphBuilder, const FViewInfo &ViewInfo, const FHairStrandsMacroGroupDatas &MacroGroupDatas)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterComputePrepareDepthGridCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf", "PrepareDepthGridCS", SF_Compute)
 
void GetHairStrandsInstanceCommon (FRDGBuilder &GraphBuilder, const FViewInfo &ViewInfo, const FHairGroupPublicData *HairGroupPublicData, FHairStrandsInstanceCommonParameters &OutCommon)
 
void GetHairStrandsInstanceResources (FRDGBuilder &GraphBuilder, const FViewInfo &ViewInfo, const FHairGroupPublicData *HairGroupPublicData, bool bForceRegister, FHairStrandsInstanceResourceParameters &OutResources)
 
void GetHairStrandsInstanceCulling (FRDGBuilder &GraphBuilder, const FViewInfo &ViewInfo, const FHairGroupPublicData *HairGroupPublicData, bool bCullingEnable, FHairStrandsInstanceCullingParameters &OutCulling)
 
FHairStrandsInstanceParameters GetHairStrandsInstanceParameters (FRDGBuilder &GraphBuilder, const FViewInfo &ViewInfo, const FHairGroupPublicData *HairGroupPublicData, bool bCullingEnable, bool bForceRegister)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterClassificationCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterClassification.usf", "CSMain", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterComputeBinningCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf", "BinningCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterComputeCompactionCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf", "CompactionCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterComputeRasterizeCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf", "RasterCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterComputeRasterizeMultiSampleCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf", "RasterMultiSampleCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterComputeDebugCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf", "MainCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterHWVS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterHW.usf", "VSMain", SF_Vertex)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterHWPS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterHW.usf", "PSMain", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FVisiblityRasterComputeNaiveCS, "/Engine/Private/HairStrands/HairStrandsVisibilityRasterComputeNaive.usf", "CSMain", SF_Compute)
 
bool IsHairStrandContinuousDecimationReorderingEnabled ()
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsEmitSelectionPS, "/Engine/Private/HairStrands/HairStrandsHitProxy.usf", "EmitPS", SF_Pixel)
 
void AddHairStrandsSelectionOutlinePass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FIntRect &ViewportRect, const FHairStrandsMacroGroupDatas &MacroGroupDatas, FHairStrandsTiles TileData, FRDGTextureRef VisNodeIndex, FRDGBufferRef VisNodeData, FRDGTextureRef CoverageTexture, FRDGTextureRef HairOnlyDepthTexture, FRDGTextureRef SelectionDepthTexture)
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsEmitHitProxyIdPS, "/Engine/Private/HairStrands/HairStrandsHitProxy.usf", "EmitPS", SF_Pixel)
 
void AddHairStrandsHitProxyIdPass (FRDGBuilder &GraphBuilder, const FScene &Scene, const FViewInfo &View, const FHairStrandsMacroGroupDatas &MacroGroupDatas, FHairStrandsTiles TileData, FRDGTextureRef VisNodeIndex, FRDGBufferRef VisNodeData, FRDGTextureRef CoverageTexture, FRDGTextureRef HitProxyTexture, FRDGTextureRef HitProxyDepthTexture)
 
 IMPLEMENT_GLOBAL_SHADER (FHairStrandsPositionChangedCS, "/Engine/Private/HairStrands/HairStrandsRaytracingGeometry.usf", "MainCS", SF_Compute)
 
void HairStrands::DrawEditorSelection (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FIntRect &ViewportRect, FRDGTextureRef SelectionDepthTexture)
 
void HairStrands::DrawHitProxies (FRDGBuilder &GraphBuilder, const FScene &Scene, const FViewInfo &View, FInstanceCullingManager &InstanceCullingManager, FRDGTextureRef HitProxyTexture, FRDGTextureRef HitProxyDepthTexture)
 
bool HairStrands::HasPositionsChanged (FRDGBuilder &GraphBuilder, const FScene &Scene, const FViewInfo &View)
 
bool GetHairStrandsSkyLightingEnable ()
 
void RenderHairStrandsVisibilityBuffer (FRDGBuilder &GraphBuilder, const FScene *Scene, FViewInfo &View, FRDGTextureRef SceneGBufferATexture, FRDGTextureRef SceneGBufferBTexture, FRDGTextureRef SceneGBufferCTexture, FRDGTextureRef SceneGBufferDTexture, FRDGTextureRef SceneGBufferETexture, FRDGTextureRef SceneColorTexture, FRDGTextureRef SceneDepthTexture, FRDGTextureRef SceneVelocityTexture, FInstanceCullingManager &InstanceCullingManager)
 

Variables

int32 GHairVisibilityComputeRaster_Culling = 0
 
int32 GHairVisibilityComputeRaster_MaxTiles = 65536
 
int32 GHairVisibilityComputeRaster_TileSize = 32
 
int32 GHairVisibility_NumClassifiers = 32
 
int32 GHairVisibilityComputeRaster_NumBinners = 32
 
int32 GHairVisibilityComputeRaster_NumRasterizers = 256
 
int32 GHairVisibilityComputeRaster_NumRasterizersNaive = 256
 
int32 GHairVisibilityComputeRaster_Debug = 0
 
FRegisterPSOCollectorCreateFunction RegisterPSOCollectorHairMaterialCreatePSOCollectorHairMaterial
 
FRegisterPSOCollectorCreateFunction RegisterPSOCollectorHairVisibilityCreatePSOCollectorHairVisibility
 

Macro Definition Documentation

◆ HAIR_MATERIAL_DEBUG_OUTPUT

#define HAIR_MATERIAL_DEBUG_OUTPUT   0

Typedef Documentation

◆ THairVisiblityVS_MSAAVisibility_Culling

◆ THairVisiblityVS_MSAAVisibility_NoCulling

◆ THairVisiblityVS_PPLL

◆ THairVisiblityVS_Transmittance

◆ THairVisiblityVS_TransmittanceAndHairCount

Enumeration Type Documentation

◆ EHairAuxilaryPassType

Enumerator
MaterialData 
MaterialData_LightChannelMask 
LightChannelMask 
DepthPatch 
DepthClear 

◆ EHairMaterialPassFilter

Enumerator
All 
EmissiveOnly 
NonEmissiveOnly 

◆ EHairVisibilityRenderMode

Enumerator
HairVisibilityRenderMode_Transmittance 
HairVisibilityRenderMode_PPLL 
HairVisibilityRenderMode_MSAA_Visibility 
HairVisibilityRenderMode_TransmittanceAndHairCount 
HairVisibilityRenderMode_ComputeRaster 
HairVisibilityRenderMode_ComputeRasterForward 
HairVisibilityRenderModeCount 

Function Documentation

◆ AddHairStrandsHitProxyIdPass()

void AddHairStrandsHitProxyIdPass ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FHairStrandsMacroGroupDatas MacroGroupDatas,
FHairStrandsTiles  TileData,
FRDGTextureRef  VisNodeIndex,
FRDGBufferRef  VisNodeData,
FRDGTextureRef  CoverageTexture,
FRDGTextureRef  HitProxyTexture,
FRDGTextureRef  HitProxyDepthTexture 
)

◆ AddHairStrandsSelectionOutlinePass()

void AddHairStrandsSelectionOutlinePass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FIntRect ViewportRect,
const FHairStrandsMacroGroupDatas MacroGroupDatas,
FHairStrandsTiles  TileData,
FRDGTextureRef  VisNodeIndex,
FRDGBufferRef  VisNodeData,
FRDGTextureRef  CoverageTexture,
FRDGTextureRef  HairOnlyDepthTexture,
FRDGTextureRef  SelectionDepthTexture 
)

◆ AddMeshDrawTransitionPass()

void AddMeshDrawTransitionPass ( FRDGBuilder GraphBuilder,
const FViewInfo ViewInfo,
const FHairStrandsMacroGroupDatas MacroGroupDatas 
)

◆ CreatePassDummyTextures()

TRDGUniformBufferRef< FVisibilityPassUniformParameters > CreatePassDummyTextures ( FRDGBuilder GraphBuilder)

◆ CreatePSOCollectorHairMaterial()

IPSOCollector * CreatePSOCollectorHairMaterial ( ERHIFeatureLevel::Type  FeatureLevel)

◆ CreatePSOCollectorHairVisibility()

IPSOCollector * CreatePSOCollectorHairVisibility ( ERHIFeatureLevel::Type  FeatureLevel)

◆ DECLARE_GPU_STAT()

DECLARE_GPU_STAT ( HairStrandsVisibility  )

◆ GetHairFastResolveVelocityThreshold()

float GetHairFastResolveVelocityThreshold ( const FIntPoint Resolution)

◆ GetHairStrandsFullCoverageThreshold()

float GetHairStrandsFullCoverageThreshold ( )

◆ GetHairStrandsInstanceCommon()

void GetHairStrandsInstanceCommon ( FRDGBuilder GraphBuilder,
const FViewInfo ViewInfo,
const FHairGroupPublicData HairGroupPublicData,
FHairStrandsInstanceCommonParameters OutCommon 
)

◆ GetHairStrandsInstanceCulling()

void GetHairStrandsInstanceCulling ( FRDGBuilder GraphBuilder,
const FViewInfo ViewInfo,
const FHairGroupPublicData HairGroupPublicData,
bool  bCullingEnable,
FHairStrandsInstanceCullingParameters OutCulling 
)

◆ GetHairStrandsInstanceParameters()

FHairStrandsInstanceParameters GetHairStrandsInstanceParameters ( FRDGBuilder GraphBuilder,
const FViewInfo ViewInfo,
const FHairGroupPublicData HairGroupPublicData,
bool  bCullingEnable,
bool  bForceRegister 
)

◆ GetHairStrandsInstanceResources()

void GetHairStrandsInstanceResources ( FRDGBuilder GraphBuilder,
const FViewInfo ViewInfo,
const FHairGroupPublicData HairGroupPublicData,
bool  bForceRegister,
FHairStrandsInstanceResourceParameters OutResources 
)

◆ GetHairStrandsIntCoverageThreshold()

uint32 GetHairStrandsIntCoverageThreshold ( )

◆ GetHairStrandsMeanSamplePerPixel()

uint32 GetHairStrandsMeanSamplePerPixel ( EShaderPlatform  InPlatform)

◆ GetHairStrandsSkyLightingEnable()

bool GetHairStrandsSkyLightingEnable ( )

◆ GetHairVisibilityRenderMode()

EHairVisibilityRenderMode GetHairVisibilityRenderMode ( EShaderPlatform  InPlatform)
inline

◆ GetHairWriteVelocityCoverageThreshold()

float GetHairWriteVelocityCoverageThreshold ( )

◆ GetMeanSamplePerPixel()

uint32 GetMeanSamplePerPixel ( EShaderPlatform  InPlatform)
inline

◆ IMPLEMENT_GLOBAL_SHADER() [1/26]

IMPLEMENT_GLOBAL_SHADER ( FClearUIntGraphicPS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityClearPS.usf"  ,
"ClearPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/26]

IMPLEMENT_GLOBAL_SHADER ( FCopyIndirectBufferCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityCopyIndirectArg.usf"  ,
"CopyCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/26]

IMPLEMENT_GLOBAL_SHADER ( FHairAttributeDebugCS  ,
"/Engine/Private/HairStrands/HairStrandsDebug.usf"  ,
"CSMain"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/26]

IMPLEMENT_GLOBAL_SHADER ( FHairCountToCoverageCS  ,
"/Engine/Private/HairStrands/HairStrandsCoverage.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/26]

IMPLEMENT_GLOBAL_SHADER ( FHairLightSampleClearPS  ,
"/Engine/Private/HairStrands/HairStrandsLightSample.usf"  ,
"ClearPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [6/26]

IMPLEMENT_GLOBAL_SHADER ( FHairLightSampleClearVS  ,
"/Engine/Private/HairStrands/HairStrandsLightSample.usf"  ,
"MainVS"  ,
SF_Vertex   
)

◆ IMPLEMENT_GLOBAL_SHADER() [7/26]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsEmitHitProxyIdPS  ,
"/Engine/Private/HairStrands/HairStrandsHitProxy.usf"  ,
"EmitPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [8/26]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsEmitSelectionPS  ,
"/Engine/Private/HairStrands/HairStrandsHitProxy.usf"  ,
"EmitPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [9/26]

IMPLEMENT_GLOBAL_SHADER ( FHairStrandsPositionChangedCS  ,
"/Engine/Private/HairStrands/HairStrandsRaytracingGeometry.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [10/26]

IMPLEMENT_GLOBAL_SHADER ( FHairVelocityCS  ,
"/Engine/Private/HairStrands/HairStrandsVelocity.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [11/26]

IMPLEMENT_GLOBAL_SHADER ( FHairViewTransmittanceDepthPS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityTransmittanceDepthPS.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [12/26]

IMPLEMENT_GLOBAL_SHADER ( FHairVisibilityCompactionComputeRasterCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityCompactionComputeRaster.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [13/26]

IMPLEMENT_GLOBAL_SHADER ( FHairVisibilityControlPointIdCompactionCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityCompaction.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [14/26]

IMPLEMENT_GLOBAL_SHADER ( FHairVisibilityDepthPS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityDepthPS.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [15/26]

IMPLEMENT_GLOBAL_SHADER ( FHairVisibilityFillOpaqueDepthPS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityFillOpaqueDepthPS.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [16/26]

IMPLEMENT_GLOBAL_SHADER ( FUpdateSampleCoverageCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityComputeSampleCoverage.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [17/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterClassificationCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterClassification.usf"  ,
"CSMain"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [18/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterComputeBinningCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf"  ,
"BinningCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [19/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterComputeCompactionCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf"  ,
"CompactionCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [20/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterComputeDebugCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [21/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterComputeNaiveCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterComputeNaive.usf"  ,
"CSMain"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [22/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterComputePrepareDepthGridCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf"  ,
"PrepareDepthGridCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [23/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterComputeRasterizeCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf"  ,
"RasterCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [24/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterComputeRasterizeMultiSampleCS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterCompute.usf"  ,
"RasterMultiSampleCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [25/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterHWPS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterHW.usf"  ,
"PSMain"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [26/26]

IMPLEMENT_GLOBAL_SHADER ( FVisiblityRasterHWVS  ,
"/Engine/Private/HairStrands/HairStrandsVisibilityRasterHW.usf"  ,
"VSMain"  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [1/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( FHairMaterialPS  ,
TEXT("/Engine/Private/HairStrands/HairStrandsMaterialPS.usf" ,
TEXT("Main")  ,
SF_Pixel   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [2/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( FHairMaterialVS  ,
TEXT("/Engine/Private/HairStrands/HairStrandsMaterialVS.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [3/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
FHairVisibilityPS< HairVisibilityRenderMode_MSAA_Visibility ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf" ,
TEXT("MainVisibility")  ,
SF_Pixel   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [4/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
FHairVisibilityPS< HairVisibilityRenderMode_PPLL ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf" ,
TEXT("MainVisibility")  ,
SF_Pixel   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [5/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
FHairVisibilityPS< HairVisibilityRenderMode_Transmittance ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf" ,
TEXT("MainVisibility")  ,
SF_Pixel   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [6/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
FHairVisibilityPS< HairVisibilityRenderMode_TransmittanceAndHairCount ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityPS.usf" ,
TEXT("MainVisibility")  ,
SF_Pixel   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [7/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
THairVisiblityVS_MSAAVisibility_Culling  ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [8/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
THairVisiblityVS_MSAAVisibility_NoCulling  ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [9/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
THairVisiblityVS_PPLL  ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [10/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
THairVisiblityVS_Transmittance  ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [11/11]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
THairVisiblityVS_TransmittanceAndHairCount  ,
TEXT("/Engine/Private/HairStrands/HairStrandsVisibilityVS.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT() [1/2]

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FVisibilityMaterialPassUniformParameters  ,
"MaterialPassParameters"  ,
SceneTextures   
)

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT() [2/2]

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FVisibilityPassUniformParameters  ,
"HairVisibilityPass"  ,
SceneTextures   
)

◆ IsHairStrandContinuousDecimationReorderingEnabled()

bool IsHairStrandContinuousDecimationReorderingEnabled ( )

◆ IsHairVisibilityComputeRasterEnabled()

bool IsHairVisibilityComputeRasterEnabled ( )

◆ IsHairVisibilityComputeRasterForwardEnabled()

bool IsHairVisibilityComputeRasterForwardEnabled ( EShaderPlatform  InPlatform)

◆ IsMsaaEnabled()

bool IsMsaaEnabled ( EShaderPlatform  InPlatform)
inline

◆ RenderHairStrandsVisibilityBuffer()

void RenderHairStrandsVisibilityBuffer ( FRDGBuilder GraphBuilder,
const FScene Scene,
FViewInfo View,
FRDGTextureRef  SceneGBufferATexture,
FRDGTextureRef  SceneGBufferBTexture,
FRDGTextureRef  SceneGBufferCTexture,
FRDGTextureRef  SceneGBufferDTexture,
FRDGTextureRef  SceneGBufferETexture,
FRDGTextureRef  SceneColorTexture,
FRDGTextureRef  SceneDepthTexture,
FRDGTextureRef  SceneVelocityTexture,
FInstanceCullingManager InstanceCullingManager 
)

◆ SetUpViewHairRenderInfo() [1/2]

void SetUpViewHairRenderInfo ( const FViewInfo ViewInfo,
bool  bEnableMSAA,
FVector4f OutHairRenderInfo,
uint32 OutHairRenderInfoBits,
uint32 OutHairComponents 
)

◆ SetUpViewHairRenderInfo() [2/2]

void SetUpViewHairRenderInfo ( const FViewInfo ViewInfo,
FVector4f OutHairRenderInfo,
uint32 OutHairRenderInfoBits,
uint32 OutHairComponents 
)

Variable Documentation

◆ CreatePSOCollectorHairMaterial

◆ CreatePSOCollectorHairVisibility

◆ GHairVisibility_NumClassifiers

int32 GHairVisibility_NumClassifiers = 32

◆ GHairVisibilityComputeRaster_Culling

int32 GHairVisibilityComputeRaster_Culling = 0

◆ GHairVisibilityComputeRaster_Debug

int32 GHairVisibilityComputeRaster_Debug = 0

◆ GHairVisibilityComputeRaster_MaxTiles

int32 GHairVisibilityComputeRaster_MaxTiles = 65536

◆ GHairVisibilityComputeRaster_NumBinners

int32 GHairVisibilityComputeRaster_NumBinners = 32

◆ GHairVisibilityComputeRaster_NumRasterizers

int32 GHairVisibilityComputeRaster_NumRasterizers = 256

◆ GHairVisibilityComputeRaster_NumRasterizersNaive

int32 GHairVisibilityComputeRaster_NumRasterizersNaive = 256

◆ GHairVisibilityComputeRaster_TileSize

int32 GHairVisibilityComputeRaster_TileSize = 32