UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RuntimeVirtualTextureComponent.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
9#include "SceneComponent.h"
10#include "SceneTypes.h"
12#include "VirtualTextureEnum.h"
13#include "RuntimeVirtualTextureComponent.generated.h"
14
16class UTexture2D;
18enum class EShadingPath;
19
21UENUM()
23{
24 Low = 0,
25 Medium = 1,
26 High = 2,
27 Epic = 3,
28};
29
30UENUM()
32{
33 Never UMETA(ToolTip = "Never show the streaming low mips in the editor"),
34 PIEOnly UMETA(ToolTip = "Only show the streaming low mips when Play In Editor is active"),
35 Always UMETA(ToolTip = "Always show the streaming low mips in the editor"),
36};
37
39UCLASS(Blueprintable, ClassGroup = Rendering, HideCategories = (Activation, Collision, Cooking, HLOD, Mobility, LOD, Navigation, Object, Physics), MinimalAPI)
41{
43
44 friend class FRuntimeVirtualTextureComponentDetailsCustomization;
45
48 UPROPERTY(EditAnywhere, Category = VolumeBounds)
49 TSoftObjectPtr<AActor> BoundsAlignActor = nullptr;
50
52 UPROPERTY(VisibleAnywhere, Transient, Category = VolumeBounds)
53 bool bSetBoundsButton;
54
56 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = VolumeBounds, meta = (DisplayName = "Snap To Landscape"))
57 bool bSnapBoundsToLandscape;
58
60 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = VolumeBounds, meta = (UIMin = "0", ClampMin = "0"))
61 float ExpandBounds = 0;
62
64 UPROPERTY(EditAnywhere, BlueprintReadOnly, TextExportTransient, Category = RuntimeVirtualTexture)
66
68 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = RuntimeVirtualTexture)
69 FPerPlatformBool EnableInGamePerPlatform;
70
72 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = RuntimeVirtualTexture)
73 bool bEnableForNaniteOnly = false;
74
76 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = RuntimeVirtualTexture, Meta = (InlineEditConditionToggle))
77 bool bUseMinMaterialQuality = false;
78
80 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = RuntimeVirtualTexture, Meta = (EditCondition = "bUseMinMaterialQuality"))
82
84 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = RuntimeVirtualTexture, meta = (InlineEditConditionToggle))
85 bool bEnableScalability = false;
86
88 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = RuntimeVirtualTexture, meta = (UIMin = "0", UIMax = "2", EditCondition = bEnableScalability))
89 uint32 ScalabilityGroup = 0;
90
92 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = RuntimeVirtualTexture)
93 bool bHidePrimitives = false;
94
96 UPROPERTY(EditAnywhere, BlueprintReadOnly, TextExportTransient, NonPIEDuplicateTransient, Category = StreamingVirtualTexture)
97 TObjectPtr<UVirtualTextureBuilder> StreamingTexture = nullptr;
98
100 UPROPERTY(EditAnywhere, Category = StreamingVirtualTexture, meta = (UIMin = "0", UIMax = "12", DisplayName = "Build Levels"))
101 int32 StreamLowMips = 0;
102
104 UPROPERTY(VisibleAnywhere, Transient, Category = StreamingVirtualTexture)
105 bool bBuildStreamingMipsButton;
106
112 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = StreamingVirtualTexture)
114
116 UPROPERTY(EditAnywhere, BlueprintReadOnly, AdvancedDisplay, Category = StreamingVirtualTexture, meta = (InlineEditConditionToggle))
117 bool bUseStreamingMipsFixedColor = false;
118
120 UPROPERTY(EditAnywhere, BlueprintReadOnly, AdvancedDisplay, Category = StreamingVirtualTexture, meta = (DisplayName = "Fixed Color", HideAlphaChannel, EditCondition = bUseStreamingMipsFixedColor))
121 FLinearColor StreamingMipsFixedColor;
122
124 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = StreamingVirtualTexture, meta = (DisplayName = "Use Only Streaming Texture"))
125 bool bUseStreamingMipsOnly = false;
126
131 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = StreamingVirtualTexture, meta = (DisplayName = "View in Editor"))
133
134 UPROPERTY()
135 bool bUseStreamingMipsInEditor_DEPRECATED = false;
136
137#if WITH_EDITOR
140#endif
141
145
148
149public:
156 UFUNCTION(BlueprintCallable, Category = VirtualTexture)
157 ENGINE_API void Invalidate(FBoxSphereBounds const& WorldBounds, EVTInvalidatePriority InvalidatePriority = EVTInvalidatePriority::High);
158
164 UFUNCTION(BlueprintCallable, Category = VirtualTexture)
165 ENGINE_API void RequestPreload(FBoxSphereBounds const& WorldBounds, int32 Level);
166
168 ENGINE_API void SetVirtualTexture(URuntimeVirtualTexture* InVirtualTexture);
169
172
174 ENGINE_API bool IsEnabledInScene() const;
175
177 ENGINE_API FVector4f GetCustomMaterialData() const;
178
180 bool IsScalable() const { return bEnableScalability; }
181
183 uint32 GetScalabilityGroup() const { return ScalabilityGroup; }
184
186 FGetHidePrimitivesDelegate& GetHidePrimitivesDelegate() { return HidePrimitivesDelegate; }
187
189 ENGINE_API void GetHidePrimitiveSettings(bool& OutHidePrimitiveEditor, bool& OutHidePrimitiveGame) const;
190
192 UVirtualTextureBuilder* GetStreamingTexture() const { return StreamingTexture; }
193
195 int32 NumStreamingMips() const { return FMath::Clamp(StreamLowMips, 0, 12); }
196
198 ENGINE_API bool IsStreamingLowMips(EShadingPath ShadingPath) const;
199
201 ENGINE_API bool IsStreamingLowMipsOnly();
202
205
208
210 ENGINE_API bool IsStreamingTextureInvalid(EShadingPath ShadingPath) const;
211
213 ENGINE_API EVTProducerPriority GetPriority() const;
214
216 {
217 None = 0,
218 HasVirtualTexture = (1 << 0),
219 HasStreamingTexture = (1 << 1),
220 InvalidStreamingTexture = (1 << 2),
221 NonMatchingStreamingTextureSettings = (1 << 3),
222 };
224 ENGINE_API EStreamingTextureStatusFlags GetStreamingTextureStatus(EShadingPath ShadingPath) const;
225
226#if WITH_EDITOR
228 ENGINE_API bool IsStreamingTextureInvalid() const;
230 ENGINE_API EStreamingTextureStatusFlags GetStreamingTextureStatus() const;
235#endif
236
237#if WITH_EDITOR
241 TSoftObjectPtr<AActor>& GetBoundsAlignActor() { return BoundsAlignActor; }
243 bool GetSnapBoundsToLandscape() const { return bSnapBoundsToLandscape; }
245 float GetExpandBounds() const { return ExpandBounds; }
246#endif
248 ENGINE_API FTransform GetTexelSnapTransform() const;
249
250protected:
251 //~ Begin UObject Interface
252 ENGINE_API virtual void BeginDestroy() override;
253 ENGINE_API virtual bool IsReadyForFinishDestroy() override;
254 ENGINE_API virtual void Serialize(FArchive& Ar) override;
255#if WITH_EDITOR
256 ENGINE_API virtual bool CanEditChange(const FProperty* InProperty) const override;
257#endif
258 ENGINE_API virtual void ApplyWorldOffset(const FVector& InOffset, bool bWorldShift) override;
259 //~ End UObject Interface
260
261 //~ Begin UActorComponent Interface
262 ENGINE_API virtual bool ShouldCreateRenderState() const override;
263 ENGINE_API virtual void CreateRenderState_Concurrent(FRegisterComponentContext* Context) override;
264 ENGINE_API virtual void SendRenderTransform_Concurrent() override;
265 ENGINE_API virtual void DestroyRenderState_Concurrent() override;
266#if WITH_EDITOR
267 ENGINE_API virtual void CheckForErrors() override;
268#endif
269 //~ End UActorComponent Interface
270
271 //~ Begin USceneComponent Interface
272#if WITH_EDITOR
273 ENGINE_API virtual void OnRegister() override;
274 ENGINE_API virtual void OnUnregister() override;
275#endif
276 ENGINE_API virtual FBoxSphereBounds CalcBounds(const FTransform& LocalToWorld) const override;
277 //~ End USceneComponent Interface
278
279protected:
281 ENGINE_API uint64 CalculateStreamingTextureSettingsHash() const;
282
284 ENGINE_API bool IsActiveInWorld() const;
285
286public:
289};
290
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
ERuntimeVirtualTextureUseStreamingMipsInEditorMode
Definition RuntimeVirtualTextureComponent.h:32
ERuntimeVirtualTextureMaterialQuality
Definition RuntimeVirtualTextureComponent.h:23
EShadingPath
Definition SceneUtils.h:24
ETextureLossyCompressionAmount
Definition TextureDefines.h:270
EVTProducerPriority
Definition VirtualTextureEnum.h:11
EVTInvalidatePriority
Definition VirtualTextureEnum.h:29
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition Archive.h:1208
Definition IDelegateInstance.h:14
Definition UnrealType.h:174
Definition ActorComponent.h:47
Definition RenderCommandFence.h:15
Definition RuntimeVirtualTextureSceneProxy.h:15
Definition Landscape.Build.cs:7
Definition EnumAsByte.h:22
virtual bool IsReadyForFinishDestroy()
Definition Object.h:373
virtual COREUOBJECT_API void BeginDestroy()
Definition Obj.cpp:1071
Definition RuntimeVirtualTextureComponent.h:41
class FRuntimeVirtualTextureSceneProxy * SceneProxy
Definition RuntimeVirtualTextureComponent.h:288
FGetHidePrimitivesDelegate & GetHidePrimitivesDelegate()
Definition RuntimeVirtualTextureComponent.h:186
TEnumAsByte< ETextureLossyCompressionAmount > GetLossyCompressionAmount() const
Definition RuntimeVirtualTextureComponent.h:207
FGetHidePrimitivesDelegate HidePrimitivesDelegate
Definition RuntimeVirtualTextureComponent.h:144
UVirtualTextureBuilder * GetStreamingTexture() const
Definition RuntimeVirtualTextureComponent.h:192
DECLARE_MULTICAST_DELEGATE_TwoParams(FGetHidePrimitivesDelegate, bool &, bool &)
bool IsScalable() const
Definition RuntimeVirtualTextureComponent.h:180
EStreamingTextureStatusFlags
Definition RuntimeVirtualTextureComponent.h:216
uint32 GetScalabilityGroup() const
Definition RuntimeVirtualTextureComponent.h:183
ENGINE_API FLinearColor GetStreamingMipsFixedColor() const
URuntimeVirtualTexture * GetVirtualTexture() const
Definition RuntimeVirtualTextureComponent.h:171
FRenderCommandFence DestroyFence
Definition RuntimeVirtualTextureComponent.h:147
int32 NumStreamingMips() const
Definition RuntimeVirtualTextureComponent.h:195
Definition RuntimeVirtualTexture.h:18
Definition Texture2D.h:26
Definition VirtualTextureBuilder.h:48
Definition RuntimeVirtualTexture.h:231
ENGINE_API FBox CalcBounds(const FVector &P0, const FVector &P1, const FVector &P2, const FVector &P3)
Definition BezierUtilities.cpp:26
Definition VirtualTextureRecreate.cpp:16
@ false
Definition radaudio_common.h:23
Definition Color.h:48
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition PerPlatformProperties.h:384
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition BoxSphereBounds.h:25