UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HairStrandsInterface.h File Reference
#include "CoreMinimal.h"
#include "RendererInterface.h"
#include "Containers/Array.h"
#include "Containers/BitArray.h"
#include "Engine/EngineTypes.h"
#include "Shader.h"
#include "RenderResource.h"
#include "RenderGraphResources.h"
#include "ShaderPrintParameters.h"
#include "GroomVisualizationData.h"
#include "HairStrandsDefinitions.h"
#include "CachedGeometry.h"
#include "Serialization/BulkData.h"

Go to the source code of this file.

Classes

struct  FRDGExternalBuffer
 
struct  FRDGImportedBuffer
 
struct  FHairStrandsInstance
 
class  FHairGroupPublicData
 
struct  FHairGroupPublicData::FVertexFactoryInput
 
struct  FHairGroupPublicData::FVertexFactoryInput::FStrands
 
struct  FHairGroupPublicData::FVertexFactoryInput::FCards
 
struct  FHairGroupPublicData::FVertexFactoryInput::FMeshes
 
struct  FHairGroupPublicData::FCulling
 
struct  FHairTransientResources
 
struct  FHairInstanceCullingResults
 
struct  FPointPerCurveDispatchInfo
 
struct  FHairStrandsBookmarkParameters
 
struct  FRenderCurveResourceData
 
struct  FRenderCurveResourceData::FHeader
 
struct  FRenderCurveResourceData::FData
 

Typedefs

typedef TArray< FHairStrandsInstance * > FHairStrandsInstances
 
typedef TArray< FRHIUnorderedAccessView * > FBufferTransitionQueue
 
typedef void(* THairStrandsBookmarkFunction) (FRDGBuilder *GraphBuilder, EHairStrandsBookmark Bookmark, FHairStrandsBookmarkParameters &Parameters)
 

Enumerations

enum class  ERDGImportedBufferFlags { None = 0 , CreateSRV = 0x1 , CreateUAV = 0x2 , CreateViews = CreateSRV | CreateUAV }
 
enum  EHairGeometryType { Strands , Cards , Meshes , NoneGeometry }
 
enum  EHairBindingType { NoneBinding , Rigid , Skinning }
 
enum  EHairInterpolationType { NoneSkinning , RigidSkinning , OffsetSkinning , SmoothSkinning }
 
enum class  EHairInstanceVisibilityType : uint8 {
  NotVisible = 0 , StrandsPrimaryView = 1 , StrandsShadowView = 2 , CardsOrMeshesPrimaryView = 3 ,
  CardsOrMeshesShadowView = 4 , Count
}
 
enum class  EHairStrandsShaderType {
  Strands , Cards , Meshes , Tool ,
  All
}
 
enum class  EHairStrandsBookmark : uint8 {
  ProcessTasks , ProcessLODSelection , ProcessBindingSurfaceUpdate , ProcessGuideInterpolation ,
  ProcessCardsAndMeshesInterpolation_PrimaryView , ProcessCardsAndMeshesInterpolation_ShadowView , ProcessStrandsInterpolation , ProcessDebug ,
  ProcessEndOfFrame , ProcessGuideDeformation
}
 

Functions

 ENUM_CLASS_FLAGS (ERDGImportedBufferFlags)
 
RENDERER_API FRDGImportedBuffer Register (FRDGBuilder &GraphBuilder, const FRDGExternalBuffer &In, ERDGImportedBufferFlags Flags, ERDGUnorderedAccessViewFlags UAVFlags=ERDGUnorderedAccessViewFlags::None)
 
RENDERER_API FRDGBufferSRVRef RegisterAsSRV (FRDGBuilder &GraphBuilder, const FRDGExternalBuffer &In)
 
RENDERER_API FRDGBufferUAVRef RegisterAsUAV (FRDGBuilder &GraphBuilder, const FRDGExternalBuffer &In, ERDGUnorderedAccessViewFlags Flags=ERDGUnorderedAccessViewFlags::None)
 
RENDERER_API void AddTransitionPass (FRDGBuilder &GraphBuilder, FGlobalShaderMap *ShaderMap, EShaderPlatform InPlatform, const TArray< FRDGBufferSRVRef > &Transitions)
 
RENDERER_API FPointPerCurveDispatchInfo GetPointPerCurveDispatchInfo (uint32 InAssetMaxPointPerCurve, uint32 InAssetCurveCount, uint32 InGroupSize)
 
RENDERER_API bool IsHairStrandsSupported (EHairStrandsShaderType Type, EShaderPlatform Platform)
 
RENDERER_API bool IsHairStrandsEnabled (EHairStrandsShaderType Type, EShaderPlatform Platform=EShaderPlatform::SP_NumPlatforms)
 
RENDERER_API bool IsHairRayTracingEnabled ()
 
RENDERER_API bool IsHairStrandsSimulationEnable ()
 
RENDERER_API bool IsHairStrandsBindingEnable ()
 
RENDERER_API bool IsHairStrandContinuousDecimationReorderingEnabled ()
 
RENDERER_API bool IsHairVisibilityComputeRasterContinuousLODEnabled ()
 
RENDERER_API void TransitBufferToReadable (FRDGBuilder &GraphBuilder, FBufferTransitionQueue &BuffersToTransit)
 
RENDERER_API float GetHairCoverage (uint32 HairCount, float AverageHairRadius)
 Return the hair coverage for a certain hair count and normalized avg hair radius (i.e, [0..1])
 
RENDERER_API float GetHairAvgRadius (uint32 InCount, float InCoverage)
 Return the average hair normalized radius for a given hair count and a given coverage value.
 
RENDERER_API void RegisterBookmarkFunction (THairStrandsBookmarkFunction Bookmark)
 
RENDERER_API bool IsRenderCurveEnabled ()
 

Typedef Documentation

◆ FBufferTransitionQueue

◆ FHairStrandsInstances

◆ THairStrandsBookmarkFunction

typedef void(* THairStrandsBookmarkFunction) (FRDGBuilder *GraphBuilder, EHairStrandsBookmark Bookmark, FHairStrandsBookmarkParameters &Parameters)

Enumeration Type Documentation

◆ EHairBindingType

Enumerator
NoneBinding 
Rigid 
Skinning 

◆ EHairGeometryType

Enumerator
Strands 
Cards 
Meshes 
NoneGeometry 

◆ EHairInstanceVisibilityType

Enumerator
NotVisible 
StrandsPrimaryView 
StrandsShadowView 
CardsOrMeshesPrimaryView 
CardsOrMeshesShadowView 
Count 

◆ EHairInterpolationType

Enumerator
NoneSkinning 
RigidSkinning 
OffsetSkinning 
SmoothSkinning 

◆ EHairStrandsBookmark

Enumerator
ProcessTasks 
ProcessLODSelection 
ProcessBindingSurfaceUpdate 
ProcessGuideInterpolation 
ProcessCardsAndMeshesInterpolation_PrimaryView 
ProcessCardsAndMeshesInterpolation_ShadowView 
ProcessStrandsInterpolation 
ProcessDebug 
ProcessEndOfFrame 
ProcessGuideDeformation 

◆ EHairStrandsShaderType

Enumerator
Strands 
Cards 
Meshes 
Tool 
All 

◆ ERDGImportedBufferFlags

Enumerator
None 
CreateSRV 
CreateUAV 
CreateViews 

Function Documentation

◆ AddTransitionPass()

RENDERER_API void AddTransitionPass ( FRDGBuilder GraphBuilder,
FGlobalShaderMap ShaderMap,
EShaderPlatform  InPlatform,
const TArray< FRDGBufferSRVRef > &  Transitions 
)

◆ ENUM_CLASS_FLAGS()

ENUM_CLASS_FLAGS ( ERDGImportedBufferFlags  )

◆ GetHairAvgRadius()

RENDERER_API float GetHairAvgRadius ( uint32  InCount,
float  InCoverage 
)

Return the average hair normalized radius for a given hair count and a given coverage value.

◆ GetHairCoverage()

RENDERER_API float GetHairCoverage ( uint32  HairCount,
float  AverageHairRadius 
)

Return the hair coverage for a certain hair count and normalized avg hair radius (i.e, [0..1])

◆ GetPointPerCurveDispatchInfo()

RENDERER_API FPointPerCurveDispatchInfo GetPointPerCurveDispatchInfo ( uint32  InAssetMaxPointPerCurve,
uint32  InAssetCurveCount,
uint32  InGroupSize 
)

◆ IsHairRayTracingEnabled()

RENDERER_API bool IsHairRayTracingEnabled ( )

◆ IsHairStrandContinuousDecimationReorderingEnabled()

RENDERER_API bool IsHairStrandContinuousDecimationReorderingEnabled ( )

◆ IsHairStrandsBindingEnable()

RENDERER_API bool IsHairStrandsBindingEnable ( )

◆ IsHairStrandsEnabled()

◆ IsHairStrandsSimulationEnable()

RENDERER_API bool IsHairStrandsSimulationEnable ( )

◆ IsHairStrandsSupported()

RENDERER_API bool IsHairStrandsSupported ( EHairStrandsShaderType  Type,
EShaderPlatform  Platform 
)

◆ IsHairVisibilityComputeRasterContinuousLODEnabled()

RENDERER_API bool IsHairVisibilityComputeRasterContinuousLODEnabled ( )

◆ IsRenderCurveEnabled()

RENDERER_API bool IsRenderCurveEnabled ( )

◆ Register()

◆ RegisterAsSRV()

RENDERER_API FRDGBufferSRVRef RegisterAsSRV ( FRDGBuilder GraphBuilder,
const FRDGExternalBuffer In 
)

◆ RegisterAsUAV()

◆ RegisterBookmarkFunction()

RENDERER_API void RegisterBookmarkFunction ( THairStrandsBookmarkFunction  Bookmark)

◆ TransitBufferToReadable()

RENDERER_API void TransitBufferToReadable ( FRDGBuilder GraphBuilder,
FBufferTransitionQueue BuffersToTransit 
)