117 virtual FName GetCategoryName()
const override {
return TEXT(
"Plugins"); }
118 virtual FName GetSectionName()
const override {
return TEXT(
"IVSmoke"); }
121 virtual void PostInitProperties()
override;
124 UFUNCTION(BlueprintCallable, Category =
"IVSmoke | VisualMaterial")
125 void SetVisualMaterialPreset(FSoftObjectPath VisualMaterialPresetPath);
128 virtual FText GetSectionText()
const override {
return NSLOCTEXT(
"IVSmoke",
"SettingsSection",
"IVSmoke"); }
129 virtual FText GetSectionDescription()
const override {
return NSLOCTEXT(
"IVSmoke",
"SettingsDescription",
"Configure IVSmoke volumetric smoke settings"); }
130 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override;
137 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category =
"IVSmoke | General")
138 bool bEnableSmokeRendering = true;
141 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | General")
142 bool bShowAdvancedOptions = false;
145 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality")
146 EIVSmokeGlobalQuality GlobalQuality = EIVSmokeGlobalQuality::Medium;
149 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
150 meta = (EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom", EditConditionHides))
151 EIVSmokeRayMarchQuality RayMarchQuality = EIVSmokeRayMarchQuality::Medium;
154 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
155 meta = (ClampMin = "32", ClampMax = "1024",
156 EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom && RayMarchQuality==EIVSmokeRayMarchQuality::Custom",
158 int32 CustomMaxSteps = 256;
161 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
162 meta = (ClampMin = "5.0", ClampMax = "100.0",
163 EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom && RayMarchQuality==EIVSmokeRayMarchQuality::Custom",
165 float CustomMinStepSize = 25.0f;
168 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
169 meta = (EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom", EditConditionHides))
170 EIVSmokeSelfShadowQuality SelfShadowQuality = EIVSmokeSelfShadowQuality::Medium;
173 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
174 meta = (ClampMin = "1", ClampMax = "16",
175 EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom && SelfShadowQuality==EIVSmokeSelfShadowQuality::Custom",
177 int32 CustomLightMarchingSteps = 6;
180 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
181 meta = (EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom", EditConditionHides))
182 EIVSmokeExternalShadowQuality ExternalShadowQuality = EIVSmokeExternalShadowQuality::Medium;
185 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
186 meta = (ClampMin = "1", ClampMax = "6",
187 EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom && ExternalShadowQuality==EIVSmokeExternalShadowQuality::Custom",
189 int32 CustomNumCascades = 4;
192 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
193 meta = (ClampMin = "256", ClampMax = "2048",
194 EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom && ExternalShadowQuality==EIVSmokeExternalShadowQuality::Custom",
196 int32 CustomCascadeResolution = 512;
199 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Quality",
200 meta = (ClampMin = "1000", ClampMax = "100000",
201 EditCondition = "GlobalQuality==EIVSmokeGlobalQuality::Custom && ExternalShadowQuality==EIVSmokeExternalShadowQuality::Custom",
203 float CustomShadowMaxDistance = 50000.0f;
209 int32 GetEffectiveMaxSteps() const;
212 float GetEffectiveMinStepSize() const;
215 bool IsSelfShadowingEnabled() const;
218 int32 GetEffectiveLightMarchingSteps() const;
221 bool IsExternalShadowingEnabled() const;
224 int32 GetEffectiveNumCascades() const;
227 int32 GetEffectiveCascadeResolution() const;
230 float GetEffectiveShadowMaxDistance() const;
236 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Appearance", meta = (ClampMin = "0.0", ClampMax = "1.0"))
237 float SmokeDensityFalloff = 0.2f;
240 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Appearance", meta = (ClampMin = "1.0", ClampMax = "1000.0"))
241 float SmokeSize = 256.0f;
244 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Appearance")
245 FVector WindDirection = FVector(0.00f, 0.00f, 0.1f);
248 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Appearance", meta = (ClampMin = "0.0", ClampMax = "1.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
249 float VolumeRangeOffset = 0.1;
252 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Appearance", meta = (ClampMin = "-1.0", ClampMax = "1.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
253 float VolumeEdgeNoiseFadeOffset = 0.1f;
256 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Appearance", meta = (ClampMin = "0.1", ClampMax = "10.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
257 float VolumeEdgeFadeSharpness = 3.0f;
263 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Lighting")
264 bool bEnableScattering = true;
267 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Lighting", meta = (ClampMin = "0.0", ClampMax = "10.0", EditCondition = "bEnableScattering", EditConditionHides))
268 float ScatterScale = 0.5f;
272 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Lighting", meta = (ClampMin = "-0.99", ClampMax = "0.99", EditCondition = "bEnableScattering", EditConditionHides))
273 float ScatteringAnisotropy = 0.5f;
276 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Lighting", meta = (EditCondition = "bShowAdvancedOptions", EditConditionHides))
277 bool bOverrideLightDirection = false;
280 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Lighting", meta = (EditCondition = "bShowAdvancedOptions && bOverrideLightDirection", EditConditionHides))
281 FVector LightDirectionOverride = FVector(0.0f, 0.0f, 1.0f);
284 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Lighting", meta = (EditCondition = "bShowAdvancedOptions", EditConditionHides))
285 bool bOverrideLightColor = false;
288 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Lighting", meta = (EditCondition = "bShowAdvancedOptions && bOverrideLightColor", EditConditionHides))
289 FLinearColor LightColorOverride = FLinearColor::White;
295 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | Self", meta = (ClampMin = "0.0", ClampMax = "1.0"))
296 float ShadowAmbient = 0.2f;
299 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | Self", meta = (ClampMin = "0.0", ClampMax = "500.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
300 float LightMarchingDistance = 0.0f;
303 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | Self", meta = (ClampMin = "1.0", ClampMax = "5.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
304 float LightMarchingExpFactor = 2.0f;
310 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (ClampMin = "0.0", ClampMax = "1.0"))
311 float ExternalShadowAmbient = 0.3f;
314 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External")
315 bool bEnableVSM = true;
318 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (ClampMin = "0", ClampMax = "8", EditCondition = "bEnableVSM", EditConditionHides))
319 int32 VSMBlurRadius = 2;
322 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (ClampMin = "0.0", ClampMax = "100.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
323 float ShadowDepthBias = 1.0f;
326 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (EditCondition = "bShowAdvancedOptions", EditConditionHides))
327 bool bCaptureSkeletalMeshes = false;
330 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (ClampMin = "0.0", ClampMax = "1.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
331 float CascadeLogLinearBlend = 0.85f;
334 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (ClampMin = "0.0", ClampMax = "0.3", EditCondition = "bShowAdvancedOptions", EditConditionHides))
335 float CascadeBlendRange = 0.1f;
338 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (ClampMin = "0.01", ClampMax = "100.0", EditCondition = "bShowAdvancedOptions && bEnableVSM", EditConditionHides))
339 float VSMMinVariance = 1.0f;
342 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Shadows | External", meta = (ClampMin = "0.0", ClampMax = "0.5", EditCondition = "bShowAdvancedOptions && bEnableVSM", EditConditionHides))
343 float VSMLightBleedingReduction = 0.2f;
350 bool bEnablePriorityUpdate = false;
353 int32 NearCascadeUpdateInterval = 1;
356 int32 FarCascadeUpdateInterval = 4;
362 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | PostProcessing", meta = (ClampMin = "0.0", ClampMax = "4.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
363 float FXAASpanMax = 4.0f;
366 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | PostProcessing", meta = (ClampMin = "0.0", ClampMax = "8.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
367 float FXAARange = 1.2f;
370 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | PostProcessing", meta = (ClampMin = "0.1", ClampMax = "8.0", EditCondition = "bShowAdvancedOptions", EditConditionHides))
371 float FXAASharpness = 1.7f;
377 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Rendering")
378 FSoftObjectPath SmokeVisualMaterialPreset;
382 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Rendering",
383 meta = (EditCondition = "bShowAdvancedOptions", EditConditionHides))
384 bool bEnableDepthWrite = true;
387 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Rendering",
388 meta = (ClampMin = "0.0", ClampMax = "100.0", EditCondition = "bShowAdvancedOptions && bEnableDepthWrite", EditConditionHides))
389 float DepthWriteBias = 50.0f;
393 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Rendering",
394 meta = (ClampMin = "0.01", ClampMax = "0.99", EditCondition = "bShowAdvancedOptions && bEnableDepthWrite", EditConditionHides))
395 float DepthWriteAlphaThreshold = 0.99f;
401 UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "
IVSmoke | Debug")
402 bool bShowDebugVolumes = false;