You can have blue noise sampling like these poisson disc samples: enter image description here

And you can have a blue noise texture like this: enter image description here

I get that in the first image, there is one input (the index of the sample) and two outputs (the x,y coordinate of the point) and that the second image is basically the reverse where there are two inputs (the x,y coordinate of the sample) and one output (the value of the point).

I'm curious though, how are these related?

If you take the DFT of the second image, you can see that it has more high frequency components than low, but I'm not sure how you'd take the DFT of the first set of data points.

I'm wondering if it's possible to take other low discrepancy sequences (say, halton, or jittered grid) and make a texture out of the idea, like the second image?

  • $\begingroup$ Isn't a second texture a more dense sampling with additive blending of samples? $\endgroup$
    – mdkdy
    Jun 1, 2017 at 15:38
  • $\begingroup$ No, but there is a similar way to generate blue noise textures to what you describe. Basically you place a point and then low pass filter (blur), then put a point in the lowest valued pixel and blur again. Rinse and repeat. That's how I've heard it described but I think there must be more to it, to keep the points sharp where you placed them. $\endgroup$
    – Alan Wolfe
    Jun 1, 2017 at 17:16
  • 2
    $\begingroup$ The "blue noise texture" is from this page, which also explains the relationship between blue noise sampling and the texture. $\endgroup$
    – user106
    Jun 1, 2017 at 21:53
  • $\begingroup$ Yeah that's where I got the image. It doesn't give the information I'm looking for. For instance, if you DFT the first data set, the frequency spectrum should look much like the DFT of the second, but how would you even DFT the first one? How are these two things "duals" of each other in frequency space? And can you take concepts from each and apply them to the other? $\endgroup$
    – Alan Wolfe
    Jun 9, 2017 at 20:34

1 Answer 1


The missing link between sample locations and the greyscale noise texture is "ordered dithering".

Ordered dithering is a list of pixel locations with a "rank" (order) for each pixel. If you have a white background and want to add two black dots, you add them at the locations for the two pixels rank 0 and rank 1.

Choosing how to rank the order of the pixels to turn on can vary dramatically with different results though. For instance, a bayer matrix is a specific ordering of the points, and blue noise sample points are as well. White noise is just shuffling the points so that they have a random ordering.

How we get from this "ordered dithering" (stippling) to the greyscale color noise images is that we divide each point's rank by the number of points to get a value from 0 to 1, and use that as the points greyscale color.

That gives you the greyscale noise textures.

The greyscale blue noise texture was created with the "void and cluster" algorithm which makes it so that each new dot placed goes in the middle of the largest void. This has the nice property that you can threshold the blue noise texture at any value, and the result will be blue noise samples of the desired density.

This paper is a great read that talks about these things more deeply: http://cv.ulichney.com/papers/1993-void-cluster.pdf


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.