UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InstancedSkinnedMeshSceneProxy.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "NaniteSceneProxy.h"
9
29
31{
32public:
34
38
40
41#if RHI_RAYTRACING
43 {
44 static const auto RayTracingInstancedSkeletalMeshesCVar = IConsoleManager::Get().FindTConsoleVariableDataInt(TEXT("r.RayTracing.Geometry.InstancedSkeletalMeshes"));
45
47 {
49 }
50
51 return Super::GetCachedRayTracingInstance(RayTracingInstance);
52 }
53#endif
54
56 {
58 }
59
60 virtual void SetInstanceCullDistance_RenderThread(float StartCullDistance, float EndCullDistance) override
61 {
62 Data.SetInstanceCullDistance_RenderThread(StartCullDistance, EndCullDistance);
63 }
64
69
70 // FPrimitiveSceneProxy interface.
71 virtual SIZE_T GetTypeHash() const override
72 {
73 static size_t UniquePointer;
74 return reinterpret_cast<size_t>(&UniquePointer);
75 }
76
77 virtual float GetAnimationMinScreenSize() const override
78 {
79 return Data.AnimationMinScreenSize;
80 }
81
82private:
84};
85
87{
88public:
90
92
93#if RHI_RAYTRACING
95 {
96 static const auto RayTracingInstancedSkeletalMeshesCVar = IConsoleManager::Get().FindTConsoleVariableDataInt(TEXT("r.RayTracing.Geometry.InstancedSkeletalMeshes"));
97
99 {
101 }
102
103 return Super::GetCachedRayTracingInstance(RayTracingInstance);
104 }
105
106 virtual void GetDynamicRayTracingInstances(FRayTracingInstanceCollector& Collector) override
107 {
108 checkNoEntry();
109 }
110#endif
111
113 {
115 }
116
117 virtual void SetInstanceCullDistance_RenderThread(float StartCullDistance, float EndCullDistance) override
118 {
119 Data.SetInstanceCullDistance_RenderThread(StartCullDistance, EndCullDistance);
120 }
121
123 {
124 return Data.GetInstanceDataUpdateTaskInfo();
125 }
126
127 // FPrimitiveSceneProxy interface.
128 virtual SIZE_T GetTypeHash() const override
129 {
130 static size_t UniquePointer;
131 return reinterpret_cast<size_t>(&UniquePointer);
132 }
133
134 virtual float GetAnimationMinScreenSize() const override
135 {
136 return Data.AnimationMinScreenSize;
137 }
138
139private:
141};
#define checkNoEntry()
Definition AssertionMacros.h:316
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ERayTracingPrimitiveFlags
Definition PrimitiveSceneProxy.h:236
uint32_t uint32
Definition binka_ue_file_header.h:6
virtual FInstanceDataUpdateTaskInfo * GetUpdateTaskInfo()
Definition InstanceDataSceneProxy.h:459
Definition InstanceDataSceneProxy.h:425
Definition InstancedSkinnedMeshSceneProxy.h:87
virtual FInstanceDataUpdateTaskInfo * GetInstanceDataUpdateTaskInfo() const override
Definition InstancedSkinnedMeshSceneProxy.h:122
virtual float GetAnimationMinScreenSize() const override
Definition InstancedSkinnedMeshSceneProxy.h:134
virtual void SetInstanceCullDistance_RenderThread(float StartCullDistance, float EndCullDistance) override
Definition InstancedSkinnedMeshSceneProxy.h:117
virtual bool GetInstanceDrawDistanceMinMax(FVector2f &OutCullRange) const override
Definition InstancedSkinnedMeshSceneProxy.h:112
virtual SIZE_T GetTypeHash() const override
Definition InstancedSkinnedMeshSceneProxy.h:128
Definition InstancedSkinnedMeshSceneProxy.h:31
virtual FInstanceDataUpdateTaskInfo * GetInstanceDataUpdateTaskInfo() const override
Definition InstancedSkinnedMeshSceneProxy.h:65
virtual void SetInstanceCullDistance_RenderThread(float StartCullDistance, float EndCullDistance) override
Definition InstancedSkinnedMeshSceneProxy.h:60
virtual float GetAnimationMinScreenSize() const override
Definition InstancedSkinnedMeshSceneProxy.h:77
virtual bool GetInstanceDrawDistanceMinMax(FVector2f &OutCullRange) const override
Definition InstancedSkinnedMeshSceneProxy.h:55
virtual SIZE_T GetTypeHash() const override
Definition InstancedSkinnedMeshSceneProxy.h:71
FNaniteInstancedSkinnedMeshSceneProxy(const Nanite::FMaterialAudit &MaterialAudit, UInstancedSkinnedMeshComponent *InComponent, FSkeletalMeshRenderData *InRenderData)
Definition InstancedSkinnedMeshSceneProxy.h:35
Definition SkeletalMeshRenderData.h:17
Definition SkeletalMeshSceneProxy.h:23
Definition NaniteSceneProxy.h:745
Definition SharedPointer.h:692
Definition InstancedSkinnedMeshSceneProxy.h:11
float AnimationMinScreenSize
Definition InstancedSkinnedMeshSceneProxy.h:24
uint32 InstanceEndCullDistance
Definition InstancedSkinnedMeshSceneProxy.h:27
uint32 InstanceMinDrawDistance
Definition InstancedSkinnedMeshSceneProxy.h:25
void SetInstanceCullDistance_RenderThread(float StartCullDistance, float EndCullDistance)
Definition InstancedSkinnedMeshSceneProxy.cpp:30
bool GetInstanceDrawDistanceMinMax(FVector2f &OutCullRange) const
Definition InstancedSkinnedMeshSceneProxy.cpp:16
FInstanceDataUpdateTaskInfo * GetInstanceDataUpdateTaskInfo() const
Definition InstancedSkinnedMeshSceneProxy.h:18
TSharedPtr< FInstanceDataSceneProxy, ESPMode::ThreadSafe > InstanceDataSceneProxy
Definition InstancedSkinnedMeshSceneProxy.h:23
uint32 InstanceStartCullDistance
Definition InstancedSkinnedMeshSceneProxy.h:26
Definition InstancedSkinnedMeshSceneProxyDesc.h:11
Definition RayTracingInstance.h:17
TConsoleVariableData< int32 > * FindTConsoleVariableDataInt(const TCHAR *Name) const
Definition IConsoleManager.h:1203
static IConsoleManager & Get()
Definition IConsoleManager.h:1270
Definition NaniteSceneProxy.h:66