UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMaterialShader Class Reference

#include <MaterialShader.h>

+ Inheritance diagram for FMaterialShader:

Public Types

using FPermutationParameters = FMaterialShaderPermutationParameters
 
using ShaderMetaType = FMaterialShaderType
 
- Public Types inherited from FShader
using FPermutationDomain = FShaderPermutationNone
 
using FPermutationParameters = FShaderPermutationParameters
 
using CompiledShaderInitializerType = FShaderCompiledShaderInitializerType
 
using ShaderMetaType = FShaderType
 
using ShaderStatKeyType = FMemoryImageName
 
using FShaderStatisticMap = TMemoryImageMap< ShaderStatKeyType, FShaderStatVariant >
 

Public Member Functions

RENDERER_API FMaterialShader ()
 
RENDERER_API FMaterialShader (const FMaterialShaderType::CompiledShaderInitializerType &Initializer)
 
RENDERER_API FRHIUniformBufferGetParameterCollectionBuffer (const FGuid &Id, const FSceneInterface *SceneInterface) const
 
RENDERER_API void SetViewParameters (FRHIBatchedShaderParameters &BatchedParameters, const FSceneView &View, const TUniformBufferRef< FViewUniformShaderParameters > &ViewUniformBuffer)
 
template<typename ShaderRHIParamRef , typename TRHICommandList >
void SetViewParameters (TRHICommandList &RHICmdList, const ShaderRHIParamRef ShaderRHI, const FSceneView &View, const TUniformBufferRef< FViewUniformShaderParameters > &ViewUniformBuffer)
 
RENDERER_API void SetParameters (FRHIBatchedShaderParameters &BatchedParameters, const FMaterialRenderProxy *MaterialRenderProxy, const FMaterial &Material, const FSceneView &View)
 
RENDERER_API void SetParameters (FRHIBatchedShaderParameters &BatchedParameters, const FMaterialRenderProxy *MaterialRenderProxy, const FMaterial &Material, const FSceneInterface *Scene)
 
template<typename TRHIShader , typename TRHICommandList >
void SetParameters (TRHICommandList &RHICmdList, TRHIShader *ShaderRHI, const FMaterialRenderProxy *MaterialRenderProxy, const FMaterial &Material, const FSceneView &View)
 
RENDERER_API void GetShaderBindings (const FSceneInterface *Scene, ERHIFeatureLevel::Type FeatureLevel, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, FMeshDrawSingleShaderBindings &ShaderBindings) const
 
- Public Member Functions inherited from FShader
RENDERCORE_API FShader ()
 
RENDERCORE_API FShader (const CompiledShaderInitializerType &Initializer)
 
RENDERCORE_API ~FShader ()
 
RENDERCORE_API const FSHAHashGetHash () const
 
RENDERCORE_API const FSHAHashGetVertexFactoryHash () const
 
RENDERCORE_API const FSHAHashGetOutputHash () const
 
uint32 GetSortKey () const
 
RENDERCORE_API void Finalize (const FShaderMapResourceCode *Code)
 
FShaderTypeGetType (const FShaderMapPointerTable &InPointerTable) const
 
FShaderTypeGetType (const FPointerTableBase *InPointerTable) const
 
FVertexFactoryTypeGetVertexFactoryType (const FShaderMapPointerTable &InPointerTable) const
 
FVertexFactoryTypeGetVertexFactoryType (const FPointerTableBase *InPointerTable) const
 
FShaderTypeGetTypeUnfrozen () const
 
int32 GetResourceIndex () const
 
EShaderPlatform GetShaderPlatform () const
 
EShaderFrequency GetFrequency () const
 
const FShaderTarget GetTarget () const
 
bool IsFrozen () const
 
uint32 GetNumInstructions () const
 
uint32 GetNumTextureSamplers () const
 
uint32 GetCodeSize () const
 
void SetNumInstructions (uint32 Value)
 
template<typename UniformBufferStructType >
const TShaderUniformBufferParameter< UniformBufferStructType > & GetUniformBufferParameter () const
 
const FShaderUniformBufferParameterGetUniformBufferParameter (const FShaderParametersMetadata *SearchStruct) const
 
const FShaderUniformBufferParameterGetUniformBufferParameter (const FHashedName SearchName) const
 
RENDERCORE_API const FShaderParametersMetadataFindAutomaticallyBoundUniformBufferStruct (int32 BaseIndex) const
 
RENDERCORE_API void DumpDebugInfo (const FShaderMapPointerTable &InPtrTable)
 
 LAYOUT_FIELD (FShaderParameterBindings, Bindings)
 
 LAYOUT_FIELD (FShaderParameterMapInfo, ParameterMapInfo)
 

Static Public Attributes

static RENDERER_API FName UniformBufferLayoutName
 

Protected Member Functions

 LAYOUT_FIELD_EDITORONLY (FDebugUniformExpressionSet, DebugUniformExpressionSet)
 
 LAYOUT_FIELD_EDITORONLY (FRHIUniformBufferLayoutInitializer, DebugUniformExpressionUBLayout)
 
 LAYOUT_FIELD_EDITORONLY (FMemoryImageString, DebugDescription)
 
- Protected Member Functions inherited from FShader
 LAYOUT_FIELD (TMemoryImageArray< FHashedName >, UniformBufferParameterStructs)
 
 LAYOUT_FIELD (TMemoryImageArray< FShaderUniformBufferParameter >, UniformBufferParameters)
 
 LAYOUT_FIELD_EDITORONLY (FSHAHash, OutputHash)
 
 LAYOUT_FIELD_EDITORONLY (FSHAHash, VFSourceHash)
 
 LAYOUT_FIELD_EDITORONLY (FSHAHash, SourceHash)
 

Additional Inherited Members

- Static Public Member Functions inherited from FShader
static void ModifyCompilationEnvironment (const FShaderPermutationParameters &, FShaderCompilerEnvironment &)
 
static const FShaderBindingLayoutGetShaderBindingLayout (const FShaderPermutationParameters &)
 
static bool ShouldCompilePermutation (const FShaderPermutationParameters &)
 
static EShaderPermutationPrecacheRequest ShouldPrecachePermutation (const FShaderPermutationParameters &Parameters)
 
static bool ValidateCompiledResult (EShaderPlatform InPlatform, const FShaderParameterMap &InParameterMap, TArray< FString > &OutError)
 
static EShaderCompileJobPriority GetOverrideJobPriority ()
 
static ERayTracingPayloadType GetRayTracingPayloadType (const int32 PermutationId)
 
static const FShaderParametersMetadataGetRootParametersMetadata ()
 

Detailed Description

Base class of all shaders that need material parameters.

Member Typedef Documentation

◆ FPermutationParameters

◆ ShaderMetaType

Constructor & Destructor Documentation

◆ FMaterialShader() [1/2]

FMaterialShader::FMaterialShader ( )
default

◆ FMaterialShader() [2/2]

FMaterialShader::FMaterialShader ( const FMaterialShaderType::CompiledShaderInitializerType Initializer)

Member Function Documentation

◆ GetParameterCollectionBuffer()

FRHIUniformBuffer * FMaterialShader::GetParameterCollectionBuffer ( const FGuid Id,
const FSceneInterface SceneInterface 
) const

◆ GetShaderBindings()

void FMaterialShader::GetShaderBindings ( const FSceneInterface Scene,
ERHIFeatureLevel::Type  FeatureLevel,
const FMaterialRenderProxy MaterialRenderProxy,
const FMaterial Material,
FMeshDrawSingleShaderBindings ShaderBindings 
) const

◆ LAYOUT_FIELD_EDITORONLY() [1/3]

FMaterialShader::LAYOUT_FIELD_EDITORONLY ( FDebugUniformExpressionSet  ,
DebugUniformExpressionSet   
)
protected

◆ LAYOUT_FIELD_EDITORONLY() [2/3]

FMaterialShader::LAYOUT_FIELD_EDITORONLY ( FMemoryImageString  ,
DebugDescription   
)
protected

◆ LAYOUT_FIELD_EDITORONLY() [3/3]

FMaterialShader::LAYOUT_FIELD_EDITORONLY ( FRHIUniformBufferLayoutInitializer  ,
DebugUniformExpressionUBLayout   
)
protected

◆ SetParameters() [1/3]

void FMaterialShader::SetParameters ( FRHIBatchedShaderParameters BatchedParameters,
const FMaterialRenderProxy MaterialRenderProxy,
const FMaterial Material,
const FSceneInterface Scene 
)

Sets pixel parameters that are material specific but not FMeshBatch specific.

◆ SetParameters() [2/3]

void FMaterialShader::SetParameters ( FRHIBatchedShaderParameters BatchedParameters,
const FMaterialRenderProxy MaterialRenderProxy,
const FMaterial Material,
const FSceneView View 
)

Sets pixel parameters that are material specific but not FMeshBatch specific.

◆ SetParameters() [3/3]

template<typename TRHIShader , typename TRHICommandList >
void FMaterialShader::SetParameters ( TRHICommandList &  RHICmdList,
TRHIShader ShaderRHI,
const FMaterialRenderProxy MaterialRenderProxy,
const FMaterial Material,
const FSceneView View 
)
inline

Sets pixel parameters that are material specific but not FMeshBatch specific.

◆ SetViewParameters() [1/2]

void FMaterialShader::SetViewParameters ( FRHIBatchedShaderParameters BatchedParameters,
const FSceneView View,
const TUniformBufferRef< FViewUniformShaderParameters > &  ViewUniformBuffer 
)

◆ SetViewParameters() [2/2]

template<typename ShaderRHIParamRef , typename TRHICommandList >
void FMaterialShader::SetViewParameters ( TRHICommandList &  RHICmdList,
const ShaderRHIParamRef  ShaderRHI,
const FSceneView View,
const TUniformBufferRef< FViewUniformShaderParameters > &  ViewUniformBuffer 
)
inline

Member Data Documentation

◆ UniformBufferLayoutName

FName FMaterialShader::UniformBufferLayoutName
static

The documentation for this class was generated from the following files: