Aetheria/Assets/Scripts/ServerShared/GlobalData.cs

57 lines
2 KiB
C#
Raw Normal View History

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
using System;
using System.Collections;
using System.Collections.Generic;
using MessagePack;
using Newtonsoft.Json;
using CultMath;
using static CultMath.math;
using static NoiseFbm;
public static class NoiseFbm
{
public static float3 fBm3(float2 p, int octaves, float frequency, float offset, float amplitude, float lacunarity, float gain)
{
return float3(
fBm(p, octaves, frequency, offset, amplitude, lacunarity, gain),
fBm(p+10, octaves, frequency, offset, amplitude, lacunarity, gain),
fBm(p+20, octaves, frequency, offset, amplitude, lacunarity, gain));
}
public static float fBm(float2 p, int octaves, float frequency, float offset, float amplitude, float lacunarity, float gain)
{
float freq = frequency, amp = .5f;
float sum = 0;
for(int i = 0; i < octaves; i++)
{
sum += snoise(p * freq) * amp;
freq *= lacunarity;
amp *= gain;
}
return (sum + offset)*amplitude;
}
public static float3 fBm3(float p, int octaves, float frequency, float offset, float amplitude, float lacunarity, float gain)
{
return float3(
fBm(p, octaves, frequency, offset, amplitude, lacunarity, gain),
fBm(p+10, octaves, frequency, offset, amplitude, lacunarity, gain),
fBm(p+20, octaves, frequency, offset, amplitude, lacunarity, gain));
}
public static float fBm(float p, int octaves, float frequency, float offset, float amplitude, float lacunarity, float gain)
{
float freq = frequency, amp = .5f;
float sum = 0;
for(int i = 0; i < octaves; i++)
{
sum += Noise1D.noise(p * freq) * amp;
freq *= lacunarity;
amp *= gain;
}
return (sum + offset)*amplitude;
}
}