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)); }
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)); } }
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)); }