8#include "SubsurfaceProfile.generated.h"
10#define MAX_SUBSURFACE_PROFILE_COUNT 256
19 SIH_AFIS UMETA(DisplayName =
"Adaptive Filtered Importance Sampling"),
34 UPROPERTY(Category =
"Burley Normalized", EditAnywhere, BlueprintReadOnly, meta = (ClampMin =
"0.01", UIMax =
"1.0", ClampMax =
"1.0", HideAlphaChannel,
editcondition =
"bEnableBurley"))
40 UPROPERTY(Category = "
Burley Normalized", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.001", UIMax = "1.0", ClampMax = "1.0", HideAlphaChannel,
editcondition = "bEnableBurley"))
47 float MeanFreePathDistance;
65 bool bEnableMeanFreePath;
104 UPROPERTY(Category = "Transmission", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.01", UIMax = "100.0", ClampMax = "100.0", SliderExponent="24"))
105 float ExtinctionScale;
107 UPROPERTY(Category = "Transmission", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.01", UIMax = "0.99", ClampMax = "1.0"))
110 UPROPERTY(Category = "Transmission", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.01", UIMax = "0.99", ClampMax = "1.0"))
111 float ScatteringDistribution;
113 UPROPERTY(Category = "Transmission", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "1.0", UIMax = "3.0", ClampMax = "3.0"))
116 UPROPERTY(Category = "
Dual Specular", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.5", UIMax = "2.0", ClampMax = "2.0"))
119 UPROPERTY(Category = "
Dual Specular", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.5", UIMax = "2.0", ClampMax = "2.0"))
122 UPROPERTY(Category = "
Dual Specular", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.1", UIMax = "0.9", ClampMax = "0.9"))
128 UPROPERTY(Category = "Transmission", EditAnywhere, BlueprintReadOnly, meta = (ClampMin = "0.001", UIMax = "1.0", ClampMax = "1.0", HideAlphaChannel))
135 ScatterRadius = 1.2f;
139 ExtinctionScale = 1.0f;
140 ScatteringDistribution = 0.93f;
146 bEnableBurley =
false;
148 SurfaceAlbedo =
FLinearColor(0.91058f,0.338275f,0.2718f);
149 MeanFreePathColor =
FLinearColor(1.0f,0.1983f/2.229f,0.1607f/2.229f);
150 MeanFreePathDistance = 1.2f*2.229f;
151 WorldUnitScale = 0.1f;
154 Implementation = ESubsurfaceImplementationTechniqueHint::SIH_AFIS;
155 bEnableMeanFreePath =
false;
180 virtual void BeginDestroy();
258 struct FSubsurfaceProfileEntry
284static const int32 SUBSURFACE_RADIUS_SCALE = 1024;
287static const int32 SUBSURFACE_KERNEL_SIZE = 3;
293UE_DEPRECATED(5.5,
"Please, use the name space SubsurfaceProfile::")
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#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
ENGINE_API float GetSubsurfaceProfileId(const USubsurfaceProfile *In)
Definition SubsurfaceProfile.cpp:725
ENGINE_API FRHITexture * GetSubsurfaceProfileTexture()
Definition SubsurfaceProfile.cpp:730
ENGINE_API FName GetSubsurfaceProfileParameterName()
Definition SubsurfaceProfile.cpp:715
ESubsurfaceImplementationTechniqueHint
Definition SubsurfaceProfile.h:14
ENGINE_API TGlobalResource< FSubsurfaceProfileTexture > GSubsurfaceProfileTextureObject
Definition SubsurfaceProfile.cpp:52
ENGINE_API void UpdateSubsurfaceProfileTexture(class FRDGBuilder &GraphBuilder, EShaderPlatform ShaderPlatform)
Definition SubsurfaceProfile.cpp:745
ENGINE_API FRHITexture * GetSubsurfaceProfileTextureWithFallback()
Definition SubsurfaceProfile.cpp:735
ENGINE_API FRHITexture * GetSSProfilesPreIntegratedTextureWithFallback()
Definition SubsurfaceProfile.cpp:740
ENGINE_API FName CreateSubsurfaceProfileParameterName(const USubsurfaceProfile *InProfile)
Definition SubsurfaceProfile.cpp:720
Definition Archive.h:1208
Definition NameTypes.h:617
Definition RenderGraphBuilder.h:49
Definition RHIResources.h:2153
Definition RenderResource.h:37
Definition SubsurfaceProfile.h:192
ENGINE_API bool GetEntryString(uint32 Index, FString &Out) const
Definition SubsurfaceProfile.cpp:641
void RemoveProfile(const USubsurfaceProfile *InProfile)
Definition SubsurfaceProfile.cpp:174
virtual void ReleaseRHI() override
Definition SubsurfaceProfile.cpp:307
struct IPooledRenderTarget * GetSSProfilesPreIntegratedTexture(class FRDGBuilder &GraphBuilder, EShaderPlatform ShaderPlatform)
Definition SubsurfaceProfile.cpp:251
void UpdateProfile(const FSubsurfaceProfileStruct Settings, const USubsurfaceProfile *Profile)
Definition SubsurfaceProfile.h:229
int32 FindAllocationId(const USubsurfaceProfile *InProfile) const
Definition SubsurfaceProfile.cpp:667
FSubsurfaceProfileTexture()
Definition SubsurfaceProfile.cpp:127
~FSubsurfaceProfileTexture()
Definition SubsurfaceProfile.cpp:140
struct IPooledRenderTarget * GetTexture()
Definition SubsurfaceProfile.cpp:213
void Dump()
Definition SubsurfaceProfile.cpp:682
int32 AddOrUpdateProfile(const FSubsurfaceProfileStruct Settings, const USubsurfaceProfile *Profile)
Definition SubsurfaceProfile.h:202
int32 AddProfile(const FSubsurfaceProfileStruct Settings, const USubsurfaceProfile *InProfile)
Definition SubsurfaceProfile.cpp:144
Definition RenderResource.h:543
Definition SubsurfaceProfile.h:170
Type
Definition UObjectGlobals.h:128
Definition SubsurfaceProfile.h:321
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
static CORE_API const FLinearColor White
Definition Color.h:456
Definition UnrealType.h:6865
Definition SubsurfaceProfile.h:28
void Invalidate()
Definition SubsurfaceProfile.h:158
Definition RendererInterface.h:494