Open ricardomatias opened 4 years ago
strange to say this but... those noises are beautiful :) Thank you for the links.
From the 3rd link above:
Update 2nd April 2020. Tommy Ettinger has provided corresponding Java code which is around 20x faster than this python code. As an indication, it generates balanced permutations of length n=16 in about one millisecond, and balanced permutations of length n=56 in about one second.
https://github.com/tommyettinger/sarong/blob/master/src/test/java/sarong/PermutationEtc.java
I wonder if that repo has useful random number generators for us: https://github.com/tommyettinger/sarong
A C++ implementation from 2016 https://github.com/bartwronski/BlueNoiseGenerator
A post showing blue noise dithering https://surma.dev/things/ditherpunk/
A comment about that post in hackernews:
linuxlizard -> Back when I worked at Marvell Semiconductor (circa 2005), we made laser printer ASICs for HP. We did a lot of dithering in hardware. We had a hardware block that did error diffusion, we had a hardware block that did regular diffusion. We also had a hardware block that did Blue Noise. I was responsible for implementing the firmware that drove those printers' scan/copy path: scan an image in monochrome, run through the dither hardware to create the bit pattern fed to the laser engine.No one could explain to me how to use the blue noise block. I couldn't understand what the blue noise block was doing. This is the first article that explained, in terms I could understand, how blue noise dithering works.I can die happy. Thank you.
This site includes 10+ posts about blue noise: https://blog.demofox.org/
And it links to this GPU implementation https://github.com/jdupuy/BlueNoiseDitherMaskTiles
It sounds like generating blue noise textures is too expensive to do in real time. Here they are free to download: http://momentsingraphics.de/BlueNoise.html and this is the zip file: http://momentsingraphics.de/Media/BlueNoise/FreeBlueNoiseTextures.zip Now I'm trying to figure out how to use those textures.
Update: it seems that my desired use case is described in this paper: http://johanneskopf.de/publications/blue_noise/paper/Recursive_Wang_Tiles_For_Real-Time_Blue_Noise.pdf in point 6.2
A video about the same paper found by Ricardo: https://www.youtube.com/watch?v=0NMmB-IlDsk
Resources