78 lines
2.5 KiB
C
78 lines
2.5 KiB
C
|
// Copyright 2020 Phyronnaz
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "CoreMinimal.h"
|
||
|
#include "VoxelNoiseNodes.h"
|
||
|
#include "VoxelNoiseNodesMacros.h"
|
||
|
#include "VoxelGavoronoiNoiseNode.generated.h"
|
||
|
|
||
|
// 2D Gavoronoi Noise
|
||
|
// This noise can be directed, and is used to fake erosion
|
||
|
// See https://www.shadertoy.com/view/llsGWl
|
||
|
UCLASS(DisplayName = "2D Gavoronoi Noise", Category = "Noise|Gavoronoi Noise")
|
||
|
class VOXELGRAPH_API UVoxelNode_2DGavoronoiNoise : public UVoxelNode_NoiseNode
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_2DGavoronoiNoise();
|
||
|
|
||
|
UPROPERTY(EditAnywhere, Category = "Gavoronoi Noise settings", meta = (UIMin = 0, UIMax = 0.5))
|
||
|
float Jitter = 0.45;
|
||
|
|
||
|
//~ Begin UVoxelNode_NoiseNode Interface
|
||
|
virtual uint32 GetDimension() const override { return 2; }
|
||
|
//~ End UVoxelNode_NoiseNode Interface
|
||
|
};
|
||
|
|
||
|
// 2D Gavoronoi Noise Fractal
|
||
|
// This noise can be directed, and is used to fake erosion
|
||
|
// See https://www.shadertoy.com/view/llsGWl
|
||
|
UCLASS(DisplayName = "2D Gavoronoi Noise Fractal", Category = "Noise|Gavoronoi Noise")
|
||
|
class VOXELGRAPH_API UVoxelNode_2DGavoronoiNoiseFractal : public UVoxelNode_NoiseNodeFractal
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_2DGavoronoiNoiseFractal();
|
||
|
|
||
|
UPROPERTY(EditAnywhere, Category = "Gavoronoi Noise settings", meta = (UIMin = 0, UIMax = 0.5))
|
||
|
float Jitter = 0.45;
|
||
|
|
||
|
//~ Begin UVoxelNode_NoiseNode Interface
|
||
|
virtual uint32 GetDimension() const override { return 2; }
|
||
|
//~ End UVoxelNode_NoiseNode Interface
|
||
|
};
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// 2D Erosion
|
||
|
// Add this to your noise to fake erosion
|
||
|
// From https://www.shadertoy.com/view/MtGcWh
|
||
|
UCLASS(DisplayName = "2D Erosion", Category = "Noise|Erosion")
|
||
|
class VOXELGRAPH_API UVoxelNode_2DErosion : public UVoxelNode_NoiseNodeWithDerivativeFractal
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_2DErosion();
|
||
|
|
||
|
public:
|
||
|
// Controls the jitter of the noise used for the "ravines"
|
||
|
UPROPERTY(EditAnywhere, Category = "Erosion settings", meta = (UIMin = 0, UIMax = 0.5))
|
||
|
float Jitter = 0.25;
|
||
|
|
||
|
public:
|
||
|
//~ Begin UVoxelNode_NoiseNode Interface
|
||
|
virtual uint32 GetDimension() const override { return 2; }
|
||
|
//~ End UVoxelNode_NoiseNode Interface
|
||
|
|
||
|
//~ Begin UObject Interface
|
||
|
#if WITH_EDITOR
|
||
|
virtual bool CanEditChange(const FProperty* InProperty) const override;
|
||
|
#endif
|
||
|
//~ End UObject Interface
|
||
|
};
|