Spherical blue noise generator
Library for generating points with blue noise distribution on a unit sphere.
The underlying idea for this algorithm is:
- First generate points on a sphere with random (white) distribution.
- Then treat each point as physically, charged particle and apply to each one repulsive force from other particles.
- With time, particles converges to the equilibrium that resembles blue noise.
Hence, the time complexity of this algorithm is O(N^2), where N is the number of points. (could be made faster by using octree, like in barnes-hut algorithm)
Visualization
Code for this animation is available in the examples
folder.
Example
use *;
let blue_noise_vec: = new.into_iter.collect;
println!;
Reference
The basic idea is based on the paper:
Wong, Kin-Ming and Wong, Tien-Tsin. "Spherical Blue Noise", Pacific Graphics Short Papers, 2018, link