23 struct FMaterialAudit;
54 return Object.GetStaticMesh()->GetName();
115#if WITH_EDITORONLY_DATA
157 return NaniteResources !=
nullptr ? NaniteResources->
PageStreamingStates.Num() > 0 :
false;
176 Audit.bHasAnyError =
false;
177 Audit.Entries.Reset();
183 Audit.bCompatibleWithLumenCardSharing = Slots.
Num() > 0;
195 SlotInfo.UVChannelData.LocalUVDensities[0],
196 SlotInfo.UVChannelData.LocalUVDensities[1],
197 SlotInfo.UVChannelData.LocalUVDensities[2],
198 SlotInfo.UVChannelData.LocalUVDensities[3]
213#if WITH_EDITORONLY_DATA
237 Audit.bHasMasked =
true;
243 Audit.bHasSky =
true;
246 auto IsCompatibleWithLumenCardSharing = [&]()
260 if (!IsCompatibleWithLumenCardSharing())
262 Audit.bCompatibleWithLumenCardSharing =
false;
279#if !(UE_BUILD_SHIPPING) || WITH_EDITOR
290 TEXT(
"Invalid material [%s] used on Nanite skeletal mesh [%s]. Only opaque or masked blend modes are currently supported, [%s] blend mode was specified."),
301 TEXT(
"Invalid material [%s] used on Nanite static mesh [%s]. Only opaque or masked blend modes are currently supported, [%s] blend mode was specified. (NOTE: \"Disallow Nanite\" on static mesh components can be used to suppress this warning and forcibly render the object as non-Nanite.)"),
316 TEXT(
"Invalid material [%s] used on Nanite skeletal mesh [%s]. The SingleLayerWater shading model is currently not supported, [%s] shading model was specified."),
327 TEXT(
"Invalid material [%s] used on Nanite static mesh [%s]. The SingleLayerWater shading model is currently not supported, [%s] shading model was specified. (NOTE: \"Disallow Nanite\" on static mesh components can be used to suppress this warning and forcibly render the object as non-Nanite.)"),
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EBlendMode
Definition EngineTypes.h:245
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
@ MATUSAGE_SkeletalMesh
Definition MaterialInterface.h:74
@ MATUSAGE_Nanite
Definition MaterialInterface.h:92
FString GetShadingModelFieldString(FMaterialShadingModelField ShadingModels, const FShadingModelToStringDelegate &Delegate, const FString &Delimiter)
Definition MaterialShader.cpp:177
FString GetBlendModeString(EBlendMode BlendMode)
Definition MaterialShader.cpp:205
UE::Math::TVector4< float > FVector4f
Definition MathFwd.h:75
EShaderPlatform GMaxRHIShaderPlatform
Definition RHI.cpp:1335
bool UseNanite(EShaderPlatform ShaderPlatform, bool bCheckForAtomicSupport, bool bCheckForProjectSetting)
Definition RenderUtils.cpp:1414
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition NameTypes.h:617
Definition NaniteResourcesHelper.h:27
static bool UseNaniteOverrideMaterials(const T &Component, bool bDoingMaterialAudit)
Definition NaniteResourcesHelper.h:161
static FMaterialAudit & AuditMaterials(const T *Component, FMaterialAudit &Audit, bool bSetMaterialUsage)
Definition NaniteResourcesHelper.h:168
static bool ShouldCreateNaniteProxy(const T &Component, FMaterialAudit *OutNaniteMaterials)
Definition NaniteResourcesHelper.h:112
static bool HasValidNaniteData(const T &Component)
Definition NaniteResourcesHelper.h:154
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
T GetValueOnAnyThread(bool bForceGameThread=false) const
Definition IConsoleManager.h:1753
Definition MaterialInterface.h:296
virtual ENGINE_API EBlendMode GetBlendMode() const
Definition MaterialInterface.cpp:1480
virtual ENGINE_API FMaterialShadingModelField GetShadingModels() const
Definition MaterialInterface.cpp:1600
virtual ENGINE_API bool IsCompatibleWithLumenCardSharing() const
Definition MaterialInterface.cpp:1670
virtual const class UMaterial * GetMaterial_Concurrent(TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const PURE_VIRTUAL(UMaterialInterface
Definition MaterialInterface.h:492
Definition Material.h:432
static ENGINE_API UMaterial * GetDefaultMaterial(EMaterialDomain Domain)
Definition Material.cpp:1071
UE_FORCEINLINE_HINT FString GetName() const
Definition UObjectBaseUtility.h:439
Definition SkinnedMeshComponent.h:258
Definition StaticMesh.h:593
FString GetMaterialMeshName< FSkinnedMeshSceneProxyDesc >(const FSkinnedMeshSceneProxyDesc &Object)
Definition NaniteResourcesHelper.cpp:20
TArray< FAuditMaterialSlotInfo, TInlineAllocator< 32 > > GetMaterialSlotInfos< FInstancedSkinnedMeshSceneProxyDesc >(const FInstancedSkinnedMeshSceneProxyDesc &Object)
Definition NaniteResourcesHelper.cpp:85
FString GetMaterialMeshName(const T &Object)
Definition NaniteResourcesHelper.h:52
bool IsMaterialSkeletalMesh< USkinnedMeshComponent >(const USkinnedMeshComponent &Object)
Definition NaniteResourcesHelper.cpp:32
bool IsMaterialSkeletalMesh< FSkinnedMeshSceneProxyDesc >(const FSkinnedMeshSceneProxyDesc &Object)
Definition NaniteResourcesHelper.cpp:38
TArray< FAuditMaterialSlotInfo, TInlineAllocator< 32 > > GetMaterialSlotInfos< FSkinnedMeshSceneProxyDesc >(const FSkinnedMeshSceneProxyDesc &Object)
Definition NaniteResourcesHelper.cpp:68
FString GetMaterialMeshName< USkinnedMeshComponent >(const USkinnedMeshComponent &Object)
Definition NaniteResourcesHelper.cpp:14
bool IsMaterialSkeletalMesh(const T &Object)
Definition NaniteResourcesHelper.h:58
bool IsMaterialSkeletalMesh< FInstancedSkinnedMeshSceneProxyDesc >(const FInstancedSkinnedMeshSceneProxyDesc &Object)
Definition NaniteResourcesHelper.cpp:44
FString GetMaterialMeshName< FInstancedSkinnedMeshSceneProxyDesc >(const FInstancedSkinnedMeshSceneProxyDesc &Object)
Definition NaniteResourcesHelper.cpp:26
TArray< FAuditMaterialSlotInfo, TInlineAllocator< 32 > > GetMaterialSlotInfos< USkinnedMeshComponent >(const USkinnedMeshComponent &Object)
Definition NaniteResourcesHelper.cpp:50
TArray< FAuditMaterialSlotInfo, TInlineAllocator< 32 > > GetMaterialSlotInfos(const T &Object)
Definition NaniteResourcesHelper.h:64
Definition SkinnedMeshComponent.h:50
bool IsSupportedShadingModel(FMaterialShadingModelField ShadingModelField)
Definition NaniteResources.cpp:3217
bool IsMaskingAllowed(UWorld *World, bool bForceNaniteForMasked)
Definition NaniteResources.cpp:3222
int32 GEnableNaniteMaterialOverrides
Definition StaticMeshSceneProxy.cpp:122
bool IsSupportedBlendMode(EBlendMode BlendMode)
Definition NaniteResources.cpp:3204
Definition OverriddenPropertySet.cpp:45
U16 Index
Definition radfft.cpp:71
Definition InstancedSkinnedMeshSceneProxyDesc.h:11
Definition MaterialCachedData.h:199
Definition MeshUVChannelInfo.h:13
Definition SkinnedMeshSceneProxyDesc.h:21
Definition StaticMesh.h:487
TConsoleVariableData< int32 > * FindTConsoleVariableDataInt(const TCHAR *Name) const
Definition IConsoleManager.h:1203
static IConsoleManager & Get()
Definition IConsoleManager.h:1270
Definition NaniteSceneProxy.h:43
FVector4f LocalUVDensities
Definition NaniteSceneProxy.h:62
uint8 bHasUnsupportedBlendMode
Definition NaniteSceneProxy.h:52
UMaterialInterface * Material
Definition NaniteSceneProxy.h:44
uint8 bHasInvalidUsage
Definition NaniteSceneProxy.h:60
uint8 bHasTessellationEnabled
Definition NaniteSceneProxy.h:55
FName MaterialSlotName
Definition NaniteSceneProxy.h:46
uint8 bHasVertexUVs
Definition NaniteSceneProxy.h:57
uint8 bHasUnsupportedShadingModel
Definition NaniteSceneProxy.h:53
uint8 bHasPerInstanceRandomID
Definition NaniteSceneProxy.h:58
uint8 bHasAnyError
Definition NaniteSceneProxy.h:49
uint8 bHasPixelDepthOffset
Definition NaniteSceneProxy.h:54
uint8 bHasNullMaterial
Definition NaniteSceneProxy.h:50
uint8 bHasPerInstanceCustomData
Definition NaniteSceneProxy.h:59
uint8 bHasWorldPositionOffset
Definition NaniteSceneProxy.h:51
int32 MaterialIndex
Definition NaniteSceneProxy.h:47
uint8 bHasVertexInterpolator
Definition NaniteSceneProxy.h:56
Definition NaniteSceneProxy.h:66
Definition NaniteResources.h:410
TArray< FPageStreamingState > PageStreamingStates
Definition NaniteResources.h:417
Definition NaniteResourcesHelper.h:45
UMaterialInterface * Material
Definition NaniteResourcesHelper.h:46
FName SlotName
Definition NaniteResourcesHelper.h:47
FMeshUVChannelInfo UVChannelData
Definition NaniteResourcesHelper.h:48