Perlin noise constructor and method(s) use

The Perlin Noise implemented in Panda is based on the original Perlin gradient noise, it’s input is scaled and repeatable. The noise is a gradient noise, based on a permutation table (which size by default is 256 in Panda). When you want to get a noise value for a given point, the algo will find the integer points around your point, calculate a gradient for each corner of the square using the permutation table and interpolate the result with the decimal part of your point.

So, to have some random noise, and not just a smooth gradient, yours points must not be too close, so so if you have a permutation table of size 256, you should not use point with less than 1/256 (well actually it depends on what you want :stuck_out_tongue: )

To help you, Panda perform a scaling of your point before generating the noise, so :

PerlinNoise2(1, 1, 256).noise(128, 128)

is equivalent to

PerlinNoise2(256, 256, 256).noise(0.5, 0.5)

As the noise function is repeatable, there is no constraint of the noise position, you can use whatever you want. Also, as the scaling is a simple division, there is no limit either (except 0 for obvious reasons)

As Thaumaturge said, (sx, sy, …) can be seen as a scale of the noise frequency, a larger value meaning a higher frequency and so more variation per unit.

finally, you usually don’t need to change table size, 256 is a good compromise, anyway Perlin noise is quite boring used alone, instead you combine it (or stack it as defined in Panda) to make FBM noise.