diff options
| author | Mel <einebeere@gmail.com> | 2023-06-29 22:15:32 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2023-06-29 22:15:32 +0200 |
| commit | 52732d71e72b02ff45e25f44e414f87ec9ab7666 (patch) | |
| tree | a3db775e01e04abaf0291e7d172740ff47ff1006 /src/Math | |
| parent | 92ac46df6afa8ee76f972cceb681cf32658f84a2 (diff) | |
| download | meowcraft-52732d71e72b02ff45e25f44e414f87ec9ab7666.tar.zst meowcraft-52732d71e72b02ff45e25f44e414f87ec9ab7666.zip | |
Pretty terrain generation
Diffstat (limited to 'src/Math')
| -rw-r--r-- | src/Math/Common.hpp | 3 | ||||
| -rw-r--r-- | src/Math/Constants.hpp | 8 | ||||
| -rw-r--r-- | src/Math/Perlin.hpp | 3 | ||||
| -rw-r--r-- | src/Math/Sigmoid.hpp | 13 | ||||
| -rw-r--r-- | src/Math/Trig.hpp | 4 |
5 files changed, 27 insertions, 4 deletions
diff --git a/src/Math/Common.hpp b/src/Math/Common.hpp index 94840b1..1ea75f2 100644 --- a/src/Math/Common.hpp +++ b/src/Math/Common.hpp @@ -3,4 +3,5 @@ #include "Vector.hpp" #include "Matrix.hpp" #include "Rotation.hpp" -#include "Trig.hpp" \ No newline at end of file +#include "Trig.hpp" +#include "Constants.hpp" \ No newline at end of file diff --git a/src/Math/Constants.hpp b/src/Math/Constants.hpp new file mode 100644 index 0000000..9c62e94 --- /dev/null +++ b/src/Math/Constants.hpp @@ -0,0 +1,8 @@ +#pragma once + +namespace Math { + +constexpr double PI = 3.14159265358979323846; +constexpr double E = 2.71828182845904523536; + +} \ No newline at end of file diff --git a/src/Math/Perlin.hpp b/src/Math/Perlin.hpp index c31697b..17d33fd 100644 --- a/src/Math/Perlin.hpp +++ b/src/Math/Perlin.hpp @@ -16,6 +16,7 @@ struct Noise { uint octaves = 3; float persistence = 0.3f; + float lacunarity = 2.0f; float at(Vector<D> pos) const { float result = 0; @@ -27,7 +28,7 @@ struct Noise { result += raw((pos + offset).abs() / scale * frequency) * amplitude; max += amplitude; - frequency *= 2; + frequency *= lacunarity; amplitude *= persistence; } diff --git a/src/Math/Sigmoid.hpp b/src/Math/Sigmoid.hpp new file mode 100644 index 0000000..f2fa009 --- /dev/null +++ b/src/Math/Sigmoid.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include <cmath> +#include "Constants.hpp" + +namespace Math { + +template <typename T> +T sigmoid(T x) { + return 1 / (1 + std::pow(E, -x)); +} + +} diff --git a/src/Math/Trig.hpp b/src/Math/Trig.hpp index c64e2f2..2a415f5 100644 --- a/src/Math/Trig.hpp +++ b/src/Math/Trig.hpp @@ -1,8 +1,8 @@ #pragma once -namespace Math { +#include "Constants.hpp" -constexpr double PI = 3.14159265358979323846; +namespace Math { template<typename T> T radians(T degrees) { |
