fix: make Perlin noise seed reproducible

This commit is contained in:
2026-04-18 15:50:48 +08:00
parent 639648969b
commit 03ea97055f

View File

@@ -5,13 +5,14 @@
#include <Cubed/tools/cubed_random.hpp> #include <Cubed/tools/cubed_random.hpp>
#include <algorithm> #include <algorithm>
#include <numeric> #include <numeric>
#include <random>
void PerlinNoise::init() { void PerlinNoise::init() {
p.resize(256); p.resize(256);
std::iota(p.begin(), p.end(), 0); std::iota(p.begin(), p.end(), 0);
int seed = std::random_device{}();
std::shuffle(p.begin(), p.end(), Cubed::Random::get().engine()); Logger::info("Init Perlin Noise With Seed {}", seed);
std::shuffle(p.begin(), p.end(), std::mt19937(seed));
p.insert(p.end(), p.begin(), p.end()); p.insert(p.end(), p.begin(), p.end());
is_init = true; is_init = true;