UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LandscapeGrassType.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"
7#include "UObject/Object.h"
11#include "SceneTypes.h"
12#include "LandscapeGrassType.generated.h"
13
14#define UE_API LANDSCAPE_API
15
16class UStaticMesh;
18
19UENUM()
21{
23 Uniform,
25 Free,
27 LockXY,
28};
29
30USTRUCT(BlueprintType)
32{
34
36
37 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass)
39
40 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (ToolTip = "Material Overrides."))
41 TArray<TObjectPtr<class UMaterialInterface>> OverrideMaterials;
42
43 /* Instances per 10 square meters. */
44 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (UIMin = 0, ClampMin = 0, UIMax = 1000, ClampMax = 1000))
45 FPerPlatformFloat GrassDensity;
46
47 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (UIMin = 0, ClampMin = 0, UIMax = 1000, ClampMax = 1000))
48 FPerQualityLevelFloat GrassDensityQuality;
49
50 /* If true, use a jittered grid sequence for placement, otherwise use a halton sequence. */
51 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass)
52 bool bUseGrid;
53
54 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (EditCondition = "bUseGrid", UIMin = 0, ClampMin = 0, UIMax = 1, ClampMax = 1))
55 float PlacementJitter;
56
57 /* The distance where instances will begin to fade out if using a PerInstanceFadeAmount material node. 0 disables. */
58 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (UIMin = 0, ClampMin = 0, UIMax = 1000000, ClampMax = 1000000))
59 FPerPlatformInt StartCullDistance;
60
61 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass, meta = (UIMin = 0, ClampMin = 0, UIMax = 1000000, ClampMax = 1000000))
62 FPerQualityLevelInt StartCullDistanceQuality;
63
68 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass, meta = (UIMin = 0, ClampMin = 0, UIMax = 1000000, ClampMax = 1000000))
69 FPerPlatformInt EndCullDistance;
70
71 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass, meta = (UIMin = 0, ClampMin = 0, UIMax = 1000000, ClampMax = 1000000))
72 FPerQualityLevelInt EndCullDistanceQuality;
73
78 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass, meta = (UIMin = -1, ClampMin = -1, UIMax = 8, ClampMax = 8))
80
82 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (UIMin = 0.0, ClampMin = 0.0, UIMax = 1.0, ClampMax = 1.0))
83 FFloatInterval AllowedDensityRange;
84
86 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass)
88
90 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass)
92
94 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (EditCondition = "Scaling == EGrassScaling::Free"))
96
98 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, meta = (EditCondition = "Scaling == EGrassScaling::Free || Scaling == EGrassScaling::LockXY"))
100
102 UPROPERTY(BlueprintReadOnly, EditAnywhere, AdvancedDisplay, Category = Grass)
103 bool bWeightAttenuatesMaxScale = false;
104
106 UPROPERTY(BlueprintReadOnly, EditAnywhere, AdvancedDisplay, Category = Grass, meta = (UIMin = 0, ClampMin = 0, UIMax = 1, ClampMax = 1, EditCondition = "bWeightAttenuatesMaxScale == true"))
107 float MaxScaleWeightAttenuation = 0.5f;
108
110 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
111 bool RandomRotation;
112
114 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
115 bool AlignToSurface;
116
118 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass, meta = (EditCondition = "AlignToSurface && bUseGrid"))
119 bool bAlignToTriangleNormals;
120
121 /* Whether to use the landscape's lightmap when rendering the grass. */
122 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
123 bool bUseLandscapeLightmap;
124
129 UPROPERTY(BlueprintReadOnly, EditAnywhere, AdvancedDisplay, Category = Grass)
130 FLightingChannels LightingChannels;
131
133 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
134 bool bReceivesDecals;
135
137 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
138 bool bAffectDistanceFieldLighting;
139
141 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
142 bool bCastDynamicShadow;
143
145 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
146 bool bCastContactShadow;
147
149 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
150 bool bKeepInstanceBufferCPUCopy;
151
153 UPROPERTY(EditAnywhere, Category = Grass)
154 uint32 InstanceWorldPositionOffsetDisableDistance;
155
157 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=Grass, AdvancedDisplay)
158 EShadowCacheInvalidationBehavior ShadowCacheInvalidationBehavior;
159
160 UE_API bool IsGrassQualityLevelEnable() const;
161
162 UE_API int32 GetStartCullDistance() const;
163
164 UE_API int32 GetEndCullDistance() const;
165
166 UE_API float GetDensity() const;
167
168};
169
170UCLASS(BlueprintType, MinimalAPI)
172{
174
175 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Grass)
176 TArray<FGrassVariety> GrassVarieties;
177
182 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = Scalability)
183 uint32 bEnableDensityScaling : 1;
184
185 UPROPERTY()
186 uint32 StateHash = 0;
187
188 UPROPERTY()
189 TObjectPtr<UStaticMesh> GrassMesh_DEPRECATED;
190 UPROPERTY()
191 float GrassDensity_DEPRECATED;
192 UPROPERTY()
193 float PlacementJitter_DEPRECATED;
194 UPROPERTY()
195 int32 StartCullDistance_DEPRECATED;
196 UPROPERTY()
197 int32 EndCullDistance_DEPRECATED;
198 UPROPERTY()
199 bool RandomRotation_DEPRECATED;
200 UPROPERTY()
201 bool AlignToSurface_DEPRECATED;
202
203 //~ Begin UObject Interface
204 virtual void PostLoad() override;
205#if WITH_EDITOR
206 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
207#endif
208 //~ End UObject Interface
209
210 uint32 ComputeStateHash();
211};
212
213
214
215#undef UE_API
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
EGrassScaling
Definition LandscapeGrassType.h:21
#define UE_API
Definition LandscapeGrassType.h:14
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
EShadowCacheInvalidationBehavior
Definition SceneTypes.h:219
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Array.h:670
Definition LandscapeGrassType.h:172
Definition MaterialInterface.h:296
Definition Object.h:95
Definition StaticMesh.h:593
Definition Scalability.cpp:198
@ false
Definition radaudio_common.h:23
Definition LandscapeGrassType.h:32
Definition EngineTypes.h:562
Definition PerPlatformProperties.h:304
Definition PerPlatformProperties.h:211
Definition PerQualityLevelProperties.h:273
Definition PerQualityLevelProperties.h:233
Definition UnrealType.h:6865
Definition ObjectPtr.h:488