Exemplo n.º 1
0
    public static float3 MakePosition(
        int index,
        float time,
        SizeParams sizes,
        NoiseFuncKinds noiseFunc
        )
    {
        int row = index / sizes.NumberPerRow;
        int col = (index - (row * sizes.NumberPerRow)) % sizes.NumberPerRow;

        float2 xyPos  = new float2(col * sizes.ColumnWidth, row * sizes.RowHeight);
        float  height = NOISE_FUNCTION(xyPos, time, noiseFunc);

        return(new float3(xyPos.x, height, xyPos.y));
    }
Exemplo n.º 2
0
    private static float NOISE_FUNCTION(float2 xyPos, float time, NoiseFuncKinds func)
    {
        switch (func)
        {
        case NoiseFuncKinds.CNoise: return(CNoise(xyPos, time));

        //case NoiseFuncKinds.PNoise: return PNoise(xyPos, time);
        case NoiseFuncKinds.PsrdNoise: return(PsrdNoise(xyPos, time));

        case NoiseFuncKinds.PsrNoise: return(PsrNoise(xyPos, time));

        case NoiseFuncKinds.SNoise: return(SNoise(xyPos, time));

        case NoiseFuncKinds.SrdNoise: return(SrdNoise(xyPos, time));

        default:
            return(CNoise(xyPos, time));
        }
    }
Exemplo n.º 3
0
    public static JobHandle Begin(
        NativeArray <float3> positions,
        SizeParams sizes,
        NoiseFuncKinds noiseFunc
        )
    {
        var job = new NoisePositionJob()
        {
            Time          = UnityEngine.Time.realtimeSinceStartup,
            Positions     = positions,
            Sizes         = sizes,
            NoiseFunction = noiseFunc
        };

        if (sizes.NumberOfRows == 0 || sizes.NumberPerRow == 0)
        {
            Debug.LogWarning($"Sizes - {sizes}");
        }

        return(IJobParallelForExtensions.Schedule(job, positions.Length, BATCH_SIZE));
    }