UNPKG

fast-noise-lite-ts

Version:

A fast and lightweight noise generation library for JavaScript

32 lines (31 loc) 1.11 kB
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; }