Add Simplex noise, and maybe other noise functions

Procedural noise needs some love…

As a Roblox developer, it is currently annoying to make extremely realistic looking procedurally generated worlds, with the current noise (Perlin noise), it looks pretty bad, with the grid artifacts, etc. at least from my perspective. I’m having to make my own function which is slower which results in very slow procedural generation times.

By Perlin noise’s grid artifacts, I mean the results look look diagonally tile-ish, with other noise functions, this will be less noticeable, and other noise functions will allow for more “shapes”.

Perlin noise:
image


If Roblox is able to address this issue, it would improve my development experience, because I would be able to make faster, and less alien looking artifacts in my procedural world.


Creating simplex multiple noise functions, in the math class, will allow me to make procedural worlds with more noise functions.


Something like:

math.snoise(x, y, z) -- Simplex noise, and other functions...

Also adding other noise functions, like a noise library, would be really helpful. (Such as: Voronoi noise, F1/F2, Cellular noise, Value noise, White noise, Layered noise, and Tiling noise)


I’ve edited this topic to be more about more other noise functions because just a new one won’t be enough.

33 Likes

I belive this should be adressed.

Custom simplex noise functions are too slow, and even perlin noise is too slow.

I suggest adding simplex and cellular noise, with a x, y, z, seed and octaves argument.

I’m using perlin noise for my game, but a custom implementation of it to implement 4d noise (for 3d + seed) with octaves is too slow.

1 Like

bump

math.noise is incredibly buggy. it gives me 0 despite the values being non-integers and whatnot.
but i cant really switch because its the fastest and cheapest noise function that is offered on roblox (i genuinely need the performance). a secondary option would be extremely helpful

It looks like this may be implemented in the future, as a dedicated Noise class was added back in February, which allows you to specify a NoiseType and has a couple of methods to sample the noise.

2 Likes