Rasagar/Assets/ProceduralTerrainPainter/Runtime/Modifiers/Noise.cs
2024-08-26 23:07:20 +03:00

34 lines
935 B
C#

using System;
using UnityEngine;
namespace sc.terrain.proceduralpainter
{
public class Noise : Modifier
{
public enum NoiseType
{
Simplex,
Gradient
}
public NoiseType noiseType;
public float noiseScale = 50f;
public Vector2 noiseOffset;
[Attributes.MinMaxSlider(0f,1f)]
public Vector2 levels = new Vector2(0.5f, 1f);
public void OnEnable()
{
passIndex = FilterPass.Noise;
}
public override void Configure(Material material)
{
base.Configure(material);
material.SetVector("_NoiseScaleOffset", new Vector4(noiseScale * 0.001f, noiseScale * 0.001f, noiseOffset.x, noiseOffset.y));
material.SetVector("_Levels", new Vector4(levels.x, levels.y, 0,0));
material.SetInt("_NoiseType", (int)noiseType);
}
}
}