63 template<
class T,
bool bAssumeRenderDataIsReady = false>
76 if (
Component.OverrideMaterials.IsValidIndex(MaterialIndex) &&
Component.OverrideMaterials[MaterialIndex])
78 OutMaterial = Component.OverrideMaterials[MaterialIndex];
83 OutMaterial = Component.GetStaticMesh()->GetMaterial(MaterialIndex);
113 if (
Component.OverrideMaterials.IsValidIndex(MaterialIndex) &&
Component.OverrideMaterials[MaterialIndex])
162 if (OverlayMaterialInterface !=
nullptr)
182 for (
int32 LODIndex = MeshMinLOD; LODIndex < LODResources.
Num(); ++LODIndex)
186 if (!bSupportsManualVertexFetch)
188 GetVertexElements(LODRenderData, LODIndex, bSupportsManualVertexFetch, VertexElements);
204 if (bSupportsManualVertexFetch)
215 bool bIsLocalToWorldDeterminantNegative =
Component.GetRenderMatrix().Determinant() < 0;
225 if (MaterialInterface ==
nullptr)
249 if (OverlayMaterialInterface)
272 if (
Component.GetStaticMesh() ==
nullptr ||
Component.GetStaticMesh()->GetRenderData() ==
nullptr)
281 int32 NumTexCoords = (
int32)LODRenderData.VertexBuffers.StaticMeshVertexBuffer.GetNumTexCoords();
306 return !
Mesh->IsCompiling() &&
Mesh->IsNavigationRelevant() &&
Component.Super::IsNavigationRelevant();
318 if (!
Mesh->IsCompiling())
321 return Mesh->GetNavigationBounds(
Component.GetComponentTransform());
325 return Component.Super::GetNavigationBounds();
331 Component.Super::GetNavigationData(Data);
344 if (!
Mesh->IsCompiling())
362 template<
typename T,
typename =
void>
373 return Object.GetFullName();
377 return FString(
"None");
415template<
class T,
bool bAssumeRenderDataIsReady>
452 if (!
StaticMesh->GetRenderData()->IsInitialized())
485 return Component.CreateStaticMeshSceneProxy(NaniteMaterials,
true);
494#if WITH_EDITORONLY_DATA
530 if (LODResources.
Num() == 0 || LODResources[FMath::Clamp<int32>(
EffectiveMinLOD, 0, LODResources.
Num() - 1)].VertexBuffers.StaticMeshVertexBuffer.GetNumVertices() == 0)
537 return Component.CreateStaticMeshSceneProxy(NaniteMaterials,
false);
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
EPSOPrecacheProxyCreationStrategy GetPSOPrecacheProxyCreationStrategy()
Definition PSOPrecache.cpp:114
EPSOPrecachePriority
Definition PipelineStateCache.h:33
ERHIFeatureLevel::Type GMaxRHIFeatureLevel
Definition RHI.cpp:1338
EShaderPlatform GMaxRHIShaderPlatform
Definition RHI.cpp:1335
bool IsRayTracingAllowed()
Definition RenderUtils.cpp:1787
EPSOPrecachePriority GetStaticMeshComponentBoostPSOPrecachePriority()
Definition StaticMeshSceneProxy.cpp:96
@ LightMapCoordinateIndex
if(Failed) console_printf("Failed.\n")
static ENGINE_API void GetVertexElements(ERHIFeatureLevel::Type FeatureLevel, EVertexInputStreamType InputStreamType, bool bSupportsManualVertexFetch, FDataType &Data, FVertexDeclarationElementList &Elements)
Definition LocalVertexFactory.cpp:377
static void AppendAllOverlayMaterial(const TArray< TObjectPtr< UMaterialInterface > > &SourceMaterials, TArray< UMaterialInterface * > &OutMaterials, bool &bOutHaveNullEntry)
Definition MaterialOverlayHelper.h:15
Definition PrimitiveSceneProxy.h:296
Definition SceneInterface.h:106
ENGINE_API EShaderPlatform GetShaderPlatform() const
Definition SceneInterface.cpp:39
Definition StaticMeshComponentHelper.h:23
static bool IsNavigationRelevant(const T &Component)
Definition StaticMeshComponentHelper.h:301
static FBox GetNavigationBounds(const T &Component)
Definition StaticMeshComponentHelper.h:312
static FPrimitiveSceneProxy * CreateSceneProxy(T &Component, FStaticMeshComponentHelper::ESceneProxyCreationError *OutError=nullptr)
Definition StaticMeshComponentHelper.h:416
static void GetNavigationData(const T &Component, FNavigationRelevantData &Data)
Definition StaticMeshComponentHelper.h:329
static void CollectPSOPrecacheData(const T &Component, const FPSOPrecacheParams &BasePrecachePSOParams, FMaterialInterfacePSOPrecacheParamsList &OutParams)
Definition StaticMeshComponentHelper.h:270
static bool DoCustomNavigableGeometryExport(const T &Component, FNavigableGeometryExport &GeomExport)
Definition StaticMeshComponentHelper.h:383
static void CollectPSOPrecacheDataImpl(const T &Component, const FVertexFactoryType *VFType, const FPSOPrecacheParams &BasePrecachePSOParams, GetPSOVertexElementsFn GetVertexElements, FMaterialInterfacePSOPrecacheParamsList &OutParams)
Definition StaticMeshComponentHelper.h:172
static void GetUsedRayTracingOnlyMaterials(const T &Component, TArray< UMaterialInterface * > &OutMaterials)
Definition StaticMeshComponentHelper.h:68
ESceneProxyCreationError
Definition StaticMeshComponentHelper.h:28
static void GetUsedMaterials(const T &Component, TArray< UMaterialInterface * > &OutMaterials, bool bGetDebugMaterials)
Definition StaticMeshComponentHelper.h:140
static UMaterialInterface * GetMaterial(const T &Component, int32 MaterialIndex, bool bDoingNaniteMaterialAudit=false, bool bIgnoreNaniteOverrideMaterials=false)
Definition StaticMeshComponentHelper.h:108
Definition VertexFactory.h:314
bool SupportsManualVertexFetch(ERHIFeatureLevel::Type InFeatureLevel) const
Definition VertexFactory.h:426
static bool ShouldCreateNaniteProxy(const T &Component, FMaterialAudit *OutNaniteMaterials)
Definition NaniteResourcesHelper.h:112
SizeType RemoveAll(const PREDICATE_CLASS &Predicate)
Definition Array.h:3108
Definition AssetRegistryState.h:50
UE_FORCEINLINE_HINT int32 Num() const
Definition IndirectArray.h:94
Definition MaterialInterface.h:296
virtual UMaterialInterface * GetNaniteOverride(TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const PURE_VIRTUAL(UMaterialInterface
Definition MaterialInterface.h:639
virtual class UMaterial * GetMaterial() PURE_VIRTUAL(UMaterialInterface
Definition MaterialInterface.h:482
static ENGINE_API UMaterial * GetDefaultMaterial(EMaterialDomain Domain)
Definition Material.cpp:1071
Definition NavCollisionBase.h:23
COREUOBJECT_API void ConditionalPostLoad()
Definition Obj.cpp:1341
Definition StaticMesh.h:593
EProxyRenderMode GetProxyRenderMode()
Definition NaniteResources.cpp:3237
@ AllowForDebugging
Disable rendering if Nanite is enabled on a mesh but is unsupported, except for debug purpose.
Definition NaniteSceneProxy.h:156
@ Allow
Fall back to rendering Nanite proxy meshes if Nanite is unsupported. (default)
Definition NaniteSceneProxy.h:155
bool IsMaskingAllowed(UWorld *World, bool bForceNaniteForMasked)
Definition NaniteResources.cpp:3222
Definition StaticMeshComponentHelper.h:361
FString GetFullNameIfAvailable(T &Object)
Definition StaticMeshComponentHelper.h:369
U16 Index
Definition radfft.cpp:71
Definition LocalVertexFactory.h:60
Definition PSOPrecache.h:187
UMaterialInterface * MaterialInterface
Definition PSOPrecache.h:189
Definition NavigationSystemHelpers.h:25
Definition NavigationRelevantData.h:40
Definition PSOPrecache.h:30
uint64 bForceLODModel
Definition PSOPrecache.h:128
uint64 bCastShadow
Definition PSOPrecache.h:120
uint64 bReverseCulling
Definition PSOPrecache.h:125
Definition PSOPrecache.h:179
int16 MaterialIndex
Definition PSOPrecache.h:180
Definition PSOPrecache.h:150
Definition StaticMeshResources.h:426
FStaticMeshSectionArray Sections
Definition StaticMeshResources.h:430
Definition StaticMeshResources.h:202
Definition NaniteSceneProxy.h:66
bool IsZero() const
Definition Vector.h:1761
Definition StaticMeshComponentHelper.h:363