I studied noise algorithms for the library that I would like to build, and started with Perlin noise (more precisely, simplex noise, I want to work with arbitrary sizes, or at least up to 6). Reading Simplex noise, demystified , helped, but looking through the implementations at the end, I saw a large lookup table called perm .
In the code example, it is apparently used to generate indexes into a set of gradients, but the method seems odd. I assume the table is there to provide 1) determinism and 2) speed acceleration.
My question is, does the perm lookup table have any auxiliary meaning or purpose, or is it there for the reasons above? Or in another way, is there a specific reason that the pseudo-random number generator is not used other than performance?
source share