@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
34 lines (26 loc) • 683 B
JavaScript
export function noise_octaves(
noise,
noise_ctx,
x, y, z,
octaves,
persistence = 0.5,
lacunarity = 2
) {
let total = 0;
let frequency = 1;
let amplitude = 1;
let totalAmplitude = 0; // Used for normalizing result to 0.0 - 1.0
let i = 0;
for (; i < octaves; i++) {
const noise_value = noise.call(noise_ctx,
x * frequency,
y * frequency,
z * frequency
);
total += noise_value * amplitude;
totalAmplitude += amplitude;
amplitude *= persistence;
frequency *= lacunarity;
}
return total / totalAmplitude;
}