private void OnEnable()
    {
        noiseSettings = new PerlinNoiseTextureSettings()
        {
            resolution = new Vector2Int(256, 256),
            offset     = new Vector2(0.0f, 0.0f),
            frequency  = 5.0f,
        };

        // create the preview with the default settings when the window is opened
        CreateTexture(true);
    }
예제 #2
0
    private void OnEnable()
    {
        noiseSettings = new PerlinNoiseTextureSettings()
        {
            resolution  = new Vector2Int(256, 256),
            offset      = new Vector2(0.0f, 0.0f),
            frequency   = 1.0f,
            octaves     = 6,
            persistence = 0.5f,
            lacunarity  = 2.0f,
        };

        CreateTexture(true);
    }
예제 #3
0
    public static void FillTextureWithPerlin2D(Texture2D tex, PerlinNoiseTextureSettings noiseSettings)
    {
        NativeArray <byte> texels = tex.GetRawTextureData <byte>();

        new FillTexelsPerlin2D()
        {
            texels      = texels,
            resolution  = new int2(noiseSettings.resolution.x, noiseSettings.resolution.y),
            offset      = new float2(noiseSettings.offset.y, noiseSettings.offset.x),
            frequency   = noiseSettings.frequency / FrequencyEaseOfUseFactor,
            octaves     = noiseSettings.octaves,
            persistence = noiseSettings.persistence,
            lacunarity  = noiseSettings.lacunarity,
        }
        .ScheduleParallel(texels.Length, 64, default(JobHandle))
        .Complete();

        tex.Apply();
    }
예제 #4
0
    public static Color32[] Perlin2DColors(PerlinNoiseTextureSettings noiseSettings)
    {
        int numTexels = noiseSettings.GetNumTexels();
        NativeArray <Color32> texels = new NativeArray <Color32>(numTexels, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);

        new Perlin2DFillTexelsJob()
        {
            texels     = texels,
            resolution = new int2(noiseSettings.resolution.x, noiseSettings.resolution.y),
            offset     = (float2)noiseSettings.offset,
            frequency  = new float2(noiseSettings.frequency, noiseSettings.frequency),
        }
        .ScheduleParallel(numTexels, 64, default(JobHandle))
        .Complete();

        Color32[] texelsArray = texels.ToArray();

        texels.Dispose();

        return(texelsArray);
    }