mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-24 10:09:32 -06:00
Soft Linear was value noise with a quintic fade between two lattice values per axis. That fade has zero slope across every lattice line and at every lattice point, so the noise's contours met the lattice at right angles and flattened around its points. The turbulent fold (1 - |s|) and high contrast turned that into a visible square grid at each layer's cell size (Turbulent Basic, Contrast 140, Brightness -35: gradients 1.3x as strong along the axes as along the diagonals; Spline 1.1x). Soft Linear is now linear interpolation softened by a one-cell box filter, i.e. the uniform quadratic B-spline over the 3 x 3 lattice values around the nearest one (evolution still fades between two slices): smooth everywhere, with half the neighbours' difference as its slope on lattice lines, and cheaper than Spline (9 taps instead of 16). Averaging lowers the noise's spread, so a fixed gain about mid-grey restores the quintic fade's variance and existing projects keep their contrast and brightness (issue settings: mean 0.356 -> 0.362, std 0.147 -> 0.152, axis bias 1.28 -> 1.05). Only Fractal / Turbulent Noise's Soft Linear changes: generate's value_noise and its other callers are untouched. noise3 now shares generate's lattice hash and fade instead of copying them. The GPU kernels (pointwise Fractal Noise and fxn_fractal) call the same soft_linear_noise. No golden hashes pin these cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>