QtCraft API C++ classes QML types Handbook

QcNoise Class

Seeded gradient noise (improved Perlin) in 2D and 3D with fractal sums. More...

Header: #include <worldgen/terrain/QcNoise.h>

Public Functions

double fractal2(double x, double z, int octaves, double persistence = 0.5) const
double fractal3(double x, double y, double z, int octaves, double persistence = 0.5) const
double noise2(double x, double z) const
double noise3(double x, double y, double z) const
quint64 qcMixSeed(quint64 seed, quint64 salt)
quint64 qcNameSalt(const QString &name)
double qcPositionRandom(quint64 seed, int x, int y, int z)

Detailed Description

Output of noise2/noise3 lies roughly in [-1, 1]; identical seeds give identical values on every platform.

Member Function Documentation

double QcNoise::fractal2(double x, double z, int octaves, double persistence = 0.5) const

Returns fractal Brownian motion of noise2() at x, z: octaves layers, each with doubled frequency and persistence times the amplitude, divided by the sum of the amplitudes (0 for no octave).

double QcNoise::fractal3(double x, double y, double z, int octaves, double persistence = 0.5) const

Returns fractal Brownian motion of noise3() at x, y, z, built like fractal2() from octaves layers with persistence.

double QcNoise::noise2(double x, double z) const

Returns the 2D noise at x, z.

double QcNoise::noise3(double x, double y, double z) const

Returns the 3D noise at x, y, z.

Related Non-Members

quint64 qcMixSeed(quint64 seed, quint64 salt)

Returns a sub-seed mixed from seed and salt (stateless 64-bit mixing).

quint64 qcNameSalt(const QString &name)

Returns a stable salt from the definition name ("qtcraft:oak_tree"; FNV-1a of the UTF-8 bytes), so the seeds of features and ores do not shift when content is added or removed.

double qcPositionRandom(quint64 seed, int x, int y, int z)

Returns a uniform value in [0, 1) for the integer position x, y, z and seed.