fast-noise-lite-ts
Version:
A fast and lightweight noise generation library for JavaScript
32 lines (31 loc) • 1.11 kB
JavaScript
import { generateNoiseSingleR2, generateNoiseSingleR3 } from "../noise";
import { lerp } from "../utilities";
export function generateFractalRidgedR2(options, x, y) {
options.seed++;
let sum = 0;
let amp = options.fractalBounding;
for (let i = 0; i < options.octaves; i++) {
let noise = Math.abs(generateNoiseSingleR2(options, x, y));
sum += (noise * -2 + 1) * amp;
amp *= lerp(1.0, 1 - noise, (options.weightedStrength ?? 0.0));
x *= options.lacunarity;
y *= options.lacunarity;
amp *= options.gain;
}
return sum;
}
export function generateFractalRidgedR3(options, x, y, z) {
options.seed++;
let sum = 0;
let amp = options.fractalBounding;
for (let i = 0; i < options.octaves; i++) {
let noise = Math.abs(generateNoiseSingleR3(options, x, y, z));
sum += (noise * -2 + 1) * amp;
amp *= lerp(1.0, 1 - noise, (options.weightedStrength ?? 0.0));
x *= options.lacunarity;
y *= options.lacunarity;
z *= options.lacunarity;
amp *= options.gain;
}
return sum;
}