This commit is contained in:
2023-03-02 12:39:08 +01:00
commit ec2fe87ec9
75 changed files with 5431 additions and 0 deletions

51
Assets/Script/Noise.cs Normal file
View File

@@ -0,0 +1,51 @@
using UnityEngine;
using UnityEngine.InputSystem;
public class Noise : MonoBehaviour
{
[SerializeField]
private ComputeShader noiseShader;
[Space(15)]
public float frequency = 0.001f;
public float amplitude = 1;
public int octaves = 4;
public float persistence = 0.5f;
public void Generate(int numPointsPerAxis, int numThreadsPerAxis, Vector3 offset)
{
var pointsBuffer = Buffers.pointsBuffer;
noiseShader.SetBuffer(0, "points", pointsBuffer);
noiseShader.SetInt("numPointsPerAxis", numPointsPerAxis);
noiseShader.SetFloat("frequency", frequency);
noiseShader.SetInt("octaves", octaves);
noiseShader.SetFloat("amplitude", amplitude);
noiseShader.SetFloat("persistence", persistence);
var vec4 = new Vector4(offset.x, offset.y, offset.z, 0);
noiseShader.SetVector("offset", vec4);
noiseShader.Dispatch(0, numThreadsPerAxis,numThreadsPerAxis,numThreadsPerAxis);
#if UNITY_EDITOR
Vector4[] arr = new Vector4[pointsBuffer.count];
Buffers.pointsBuffer.GetData(arr,0,0, pointsBuffer.count);
var min = arr[0].w;
var max = min;
foreach (var p in arr)
{
if (min > p.w)
min = p.w;
if (max < p.w)
max = p.w;
}
Debug.Log($"{min} || {max}");
#endif
}
}