UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GPUSkinVertexFactory.cpp File Reference
#include "GPUSkinVertexFactory.h"
#include "Animation/MeshDeformerProvider.h"
#include "MeshBatch.h"
#include "GPUSkinCache.h"
#include "MeshDrawShaderBindings.h"
#include "MeshMaterialShader.h"
#include "Misc/DelayedAutoRegister.h"
#include "SkeletalRenderGPUSkin.h"
#include "Interfaces/ITargetPlatform.h"
#include "Interfaces/ITargetPlatformManagerModule.h"
#include "RenderGraphResources.h"
#include "RenderUtils.h"
#include "ShaderPlatformCachedIniValue.h"
#include "Engine/RendererSettings.h"
#include "Rendering/RenderCommandPipes.h"

Classes

class  FNullMorphVertexBuffer
 
class  FGPUSkinVertexFactoryShaderParameters
 
class  TGPUSkinAPEXClothVertexFactoryShaderParameters
 

Macros

#define IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE_INTERNAL(FactoryClass, ShaderFilename, Flags)
 
#define IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE(FactoryClass, ShaderFilename, Flags)
 
#define IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE(FactoryClass, Frequency, ParameterType)
 
#define GPU_SKIN_COPY_BONES_ISPC_ENABLED_DEFAULT   0
 

Functions

bool SupportsNoOverwriteBuffers ()
 
void GetGPUSkinVertexFactoryCommonShaderParameters (FGPUSkinVertexFactoryCommonShaderParameters &ShaderParameters, const FGPUBaseSkinVertexFactory *VertexFactory)
 
 IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT (FGPUSkinAPEXClothVertexFactoryUniformShaderParameters, "GPUSkinAPEXClothVF")
 
void GetGPUSkinAPEXClothVertexFactoryUniformShaderParameters (FGPUSkinAPEXClothVertexFactoryUniformShaderParameters &UniformParameters, const FGPUBaseSkinVertexFactory *VertexFactory)
 
 IMPLEMENT_TYPE_LAYOUT (FGPUSkinVertexFactoryShaderParameters)
 
 IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE (TGPUSkinVertexFactory, SF_Vertex, FGPUSkinVertexFactoryShaderParameters)
 
 IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE (TGPUSkinVertexFactory, "/Engine/Private/GpuSkinVertexFactory.ush", EVertexFactoryFlags::UsedWithMaterials|EVertexFactoryFlags::SupportsDynamicLighting|EVertexFactoryFlags::SupportsPSOPrecaching|EVertexFactoryFlags::SupportsCachingMeshDrawCommands|EVertexFactoryFlags::SupportsTriangleSorting)
 
 IMPLEMENT_TYPE_LAYOUT (TGPUSkinAPEXClothVertexFactoryShaderParameters)
 
 IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE (TGPUSkinAPEXClothVertexFactory, SF_Vertex, TGPUSkinAPEXClothVertexFactoryShaderParameters)
 
 IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE (TGPUSkinAPEXClothVertexFactory, "/Engine/Private/GpuSkinVertexFactory.ush", EVertexFactoryFlags::UsedWithMaterials|EVertexFactoryFlags::SupportsDynamicLighting|EVertexFactoryFlags::SupportsPSOPrecaching|EVertexFactoryFlags::SupportsCachingMeshDrawCommands)
 
 IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT (FGPUSkinPassThroughFactoryLooseParameters, "GPUSkinPassThroughVFLooseParameters")
 

Variables

TGlobalResource< FNullMorphVertexBuffer, FRenderResource::EInitPhase::PreGNullMorphVertexBuffer
 
TGlobalResource< FBoneBufferPoolGBoneBufferPool
 
TGlobalResource< FClothBufferPoolGClothBufferPool
 

Macro Definition Documentation

◆ GPU_SKIN_COPY_BONES_ISPC_ENABLED_DEFAULT

#define GPU_SKIN_COPY_BONES_ISPC_ENABLED_DEFAULT   0

◆ IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE

#define IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE (   FactoryClass,
  Frequency,
  ParameterType 
)
Value:
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define IMPLEMENT_VERTEX_FACTORY_PARAMETER_TYPE(FactoryClass, ShaderFrequency, ParameterClass)
Definition VertexFactory.h:216

◆ IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE

#define IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE (   FactoryClass,
  ShaderFilename,
  Flags 
)
Value:
#define IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE_INTERNAL(FactoryClass, ShaderFilename, Flags)
Definition GPUSkinVertexFactory.cpp:78

◆ IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE_INTERNAL

#define IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE_INTERNAL (   FactoryClass,
  ShaderFilename,
  Flags 
)
Value:
template <GPUSkinBoneInfluenceType BoneInfluenceType> FVertexFactoryType FactoryClass<BoneInfluenceType>::StaticType( \
BoneInfluenceType == DefaultBoneInfluence ? TEXT(#FactoryClass) TEXT("Default") : TEXT(#FactoryClass) TEXT("Unlimited"), \
TEXT(ShaderFilename), \
IMPLEMENT_VERTEX_FACTORY_VTABLE(FactoryClass<BoneInfluenceType>) \
); \
template <GPUSkinBoneInfluenceType BoneInfluenceType> inline FVertexFactoryType* FactoryClass<BoneInfluenceType>::GetType() const { return &StaticType; }
#define TEXT(x)
Definition Platform.h:1272
@ DefaultBoneInfluence
Definition GPUSkinVertexFactory.h:159
#define IMPLEMENT_VERTEX_FACTORY_VTABLE(FactoryClass)
Definition VertexFactory.h:566
EVertexFactoryFlags
Definition VertexFactory.h:136
Definition VertexFactory.h:314

Function Documentation

◆ GetGPUSkinAPEXClothVertexFactoryUniformShaderParameters()

void GetGPUSkinAPEXClothVertexFactoryUniformShaderParameters ( FGPUSkinAPEXClothVertexFactoryUniformShaderParameters UniformParameters,
const FGPUBaseSkinVertexFactory VertexFactory 
)

◆ GetGPUSkinVertexFactoryCommonShaderParameters()

void GetGPUSkinVertexFactoryCommonShaderParameters ( FGPUSkinVertexFactoryCommonShaderParameters ShaderParameters,
const FGPUBaseSkinVertexFactory VertexFactory 
)

◆ IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT() [1/2]

IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT ( FGPUSkinAPEXClothVertexFactoryUniformShaderParameters  ,
"GPUSkinAPEXClothVF"   
)

Transform from cloth space (relative to cloth root bone) to local(component) space blend weight between simulated positions and original key-framed animation Scale of the owner actor Vertex buffer from which to read simulated positions of clothing.

◆ IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT() [2/2]

IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT ( FGPUSkinPassThroughFactoryLooseParameters  ,
"GPUSkinPassThroughVFLooseParameters"   
)

◆ IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE() [1/2]

IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE ( TGPUSkinAPEXClothVertexFactory  ,
SF_Vertex  ,
TGPUSkinAPEXClothVertexFactoryShaderParameters   
)

◆ IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE() [2/2]

IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_PARAMETER_TYPE ( TGPUSkinVertexFactory  ,
SF_Vertex  ,
FGPUSkinVertexFactoryShaderParameters   
)

◆ IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE() [1/2]

bind cloth gpu skin vertex factory to its shader file and its shader parameters

◆ IMPLEMENT_GPUSKINNING_VERTEX_FACTORY_TYPE() [2/2]

◆ IMPLEMENT_TYPE_LAYOUT() [1/2]

IMPLEMENT_TYPE_LAYOUT ( FGPUSkinVertexFactoryShaderParameters  )

◆ IMPLEMENT_TYPE_LAYOUT() [2/2]

◆ SupportsNoOverwriteBuffers()

bool SupportsNoOverwriteBuffers ( )

Variable Documentation

◆ GBoneBufferPool

TGlobalResource<FBoneBufferPool> GBoneBufferPool

◆ GClothBufferPool

TGlobalResource<FClothBufferPool> GClothBufferPool

Pool of buffers for clothing simulation data

◆ GNullMorphVertexBuffer