IVSmoke 1.0
Loading...
Searching...
No Matches
IVSmokeVisualMaterialPreset.h
1// Copyright (c) 2026, Team SDB. All rights reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Engine/DataAsset.h"
7#include "IVSmokeVisualMaterialPreset.generated.h"
8
9class UMaterialInterface;
10
11/**
12 * It is filter type that's applied after raymarching
13 */
14UENUM(BlueprintType)
15enum class EIVSmokeUpSampleFilterType : uint8
16{
17 /** Not used filter */
18 None,
19 /** Sharpen filter */
20 Sharpen,
21 /** Gaussian blur filter */
22 Blur,
23 /** Median filter */
24 Median
25};
26
27/**
28 * Data asset containing visual material and alpha process configuration preset.
29 */
30UCLASS(BlueprintType)
31class IVSMOKE_API UIVSmokeVisualMaterialPreset : public UPrimaryDataAsset
32{
33 GENERATED_BODY()
34protected:
35#if WITH_EDITOR
36 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
37#endif
38public:
39 /** It is used in Visual Pass, which is called after upsample filter pass */
40 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "IVSmoke | Rendering")
41 TObjectPtr<UMaterialInterface> SmokeVisualMaterial;
42
43 /** It is filter type that's applied after raymarching */
44 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "IVSmoke | Rendering")
45 EIVSmokeUpSampleFilterType UpSampleFilterType = EIVSmokeUpSampleFilterType::Blur;
46
47 /** The strength of the Sharpen filter. */
48 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "IVSmoke | Rendering", meta = (ClampMin = "0.0", ClampMax = "1.0",
49 EditCondition = "UpSampleFilterType == EIVSmokeUpSampleFilterType::Sharpen", EditConditionHides))
50 float SharpenStrength = 0.4f;
51
52 /** The strength of the Gaussian blur filter. */
53 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "IVSmoke | Rendering", meta = (ClampMin = "0.0", ClampMax = "1.0",
54 EditCondition = "UpSampleFilterType == EIVSmokeUpSampleFilterType::Blur", EditConditionHides))
55 float BlurStrength = 0.4f;
56};