IVSmoke 1.0
Loading...
Searching...
No Matches
MaterialExpressionIVSmoke_TextureSample.h
1// Copyright (c) 2026, Team SDB. All rights reserved.
2#pragma once
3#include "CoreMinimal.h"
4#include "Materials/MaterialExpression.h"
5#include "MaterialExpressionIVSmoke_TextureSample.generated.h"
6
7/**
8 * Smoke texture type for IVSmoke_Texture sample node
9 */
10UENUM(BlueprintType)
11enum class EIVSmokeTextureType : uint8
12{
13 /** PostProcessInput0 (SmokeColor, SmokeAlpha) from upsample filter */
14 SmokeColor,
15 /** PostProcessInput1 (SmokeLocalPos ) from raymarching */
16 SmokeLocalPos,
17 /** PostProcessInput3 SceneColor */
18 SceneColor,
19 /** PostProcessInput4 (SmokeWorldPos, SmokeLinearDepth) from raymarching */
20 SmokeWorldPosLinearDepth
21};
22/**
23 * IVSMoke Dedicated Node Available in Unreal Material
24 */
25UCLASS(collapsecategories, hidecategories = Object)
26class IVSMOKE_API UMaterialExpressionIVSmoke_TextureSample : public UMaterialExpression
27{
28 GENERATED_BODY()
29public:
31
32#if WITH_EDITOR
33 virtual int32 Compile(class FMaterialCompiler* Compiler, int32 OutputIndex) override;
34 virtual void GetCaption(TArray<FString>& OutCaptions) const override;
35 virtual uint32 GetOutputType(int32 OutputIndex) override;
36#endif
37
38public:
39 /** Features such as input UVs on existing SceneTexture nodes */
40 UPROPERTY()
41 FExpressionInput UVs;
42 /** Textures to be sampled. See EIVSmokeTextureType */
43 UPROPERTY(EditAnywhere, Category = "Source")
44 EIVSmokeTextureType TextureType;
45 /** Output R channel enabled */
46 UPROPERTY(EditAnywhere, Category = "MaterialExpression", meta = (ShowAsComponentMask))
47 uint32 R : 1;
48 /** Output G channel enabled */
49 UPROPERTY(EditAnywhere, Category = "MaterialExpression", meta = (ShowAsComponentMask))
50 uint32 G : 1;
51 /** Output B channel enabled */
52 UPROPERTY(EditAnywhere, Category = "MaterialExpression", meta = (ShowAsComponentMask))
53 uint32 B : 1;
54 /** Output A channel enabled */
55 UPROPERTY(EditAnywhere, Category = "MaterialExpression", meta = (ShowAsComponentMask))
56 uint32 A : 1;
57};