Questions tagged [simplex-noise]

Simplex noise is a procedural texture primitive, a type of gradient noise used by visual effects artists to increase the appearance of realism in computer graphics.

Simplex noise is a procedural texture primitive, a type of gradient noise used by visual effects artists to increase the appearance of realism in computer graphics.

It was developed by Ken Perlin to overcome some of the limitations of Perlin noise while having similar properties. It is particularly useful at higher dimensions as computation time scales O(n^2) compared to O(2^n) for conventional noise (where n is the number of dimensions). Minor but noticeable directional artefacts found in Perlin noise have also been corrected in Simplex noise.

Simplex noise gets its name from the "Simplex" that the noise is based upon; a simplex is an n-dimensional equilateral triangle and as such has n+1 corners. In contrast Perlin noise is based upon the Square (or n-dimensional equivalent; square, cube, hypercube) and has 2^n corners.

Fractal noise
Often several octaves of Simplex noises are summed to create fractal noise (other basis noise functions can also be used for fractal noise). Several noises are combined with different frequencies leading to small scale and long scale coherence. The ratios with which these different frequencies are combined is determined by the persistence and can be calculated as follows:

frequency = 2^i  
amplitude = persistence^i 

where i is the octave number (an integer)

Examples of fractal noise resulting from several octaves of simplex noise

Low Persistence:
Persistence of 0.5

High Persistence:
Persistence of 0.7

High Persistence (larger scale):
Persistence of 0.7

References:
http://en.wikipedia.org/wiki/Simplex_noise
http://webstaff.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf

82 questions
3
votes
1 answer

I cannot generate smooth Simplex noise in Javascript

I've tried everything and read every single link I can see on the internet regarding Perlin Noise or Simplex Noise and even dissected a few Javascript examples that I see work fine. But I still get very random looking images... essentially just TV…
NeomerArcana
  • 1,978
  • 3
  • 23
  • 50
2
votes
1 answer

Infinte map generation in isometric game - Java LibGDX

I'm currently trying to learn game developing in Java with LibGDX and have a few questions regarding infinite map generation in an isometric type tile game. My current code in a Screen constructor looks like this. for (int col = MAP_WIDTH - 1; col…
Phrille
  • 31
  • 5
2
votes
1 answer

How can I generate a circle/square gradient and store it in a 2d array?

I'm trying to figure out how I can - or at least where I can read more about it - create a circle / square gradient and store the data in a 2d array. My goal is to use the gradient with simplex-noise to create a procedural island by subtracting the…
olawrdhalpme
  • 180
  • 8
2
votes
1 answer

Transforming simplex noise value to color

I am trying to create a 256x256 heightmap using simplex noise. The noise function returns a value between -1 and 1 and this is my current attempt to turn that value into a gray value. import { SimplexNoise } from…
Robeart
  • 23
  • 2
2
votes
0 answers

Why is the quality of my GLSL simplex noise so much worse then the one run on Java?

I've been working on an infinetly procedurally generated terrain using Simplex Noise. I've decided to improve its performance by transferring the Code for simplex noise to my compute shader. The problem was that the code I found for GLSL simplex…
Ethan Ma
  • 69
  • 3
  • 7
2
votes
1 answer

Creating Terrain(shape) in Pymunk using Opennoise

I have been trying to create a game in pymunk with a 2D terrain using Opennoise. The coordinates of the terrain are: from opensimplex import OpenSimplex noise = OpenSimplex() inputs = np.zeros((100002,2)) for x in range(100000): inputs[x] =…
lars.stifi
  • 23
  • 3
2
votes
1 answer

Simplex noise range too small

I'm using the following implementation of simplex noise (Appendix B): https://www.csee.umbc.edu/~olano/s2002c36/ch02.pdf This was written by Ken Perlin himself. The code in the PDF is written in JAVA but I've translated it to C++. Here is my code…
Pedro Henrique
  • 680
  • 7
  • 22
2
votes
1 answer

OpenSimplex and PyQt5: Why is my function taking so long?

I am trying to implement Simplex Noise using PyQt5 and Python to create Proceduraly Generated Height maps for simulation purposes. I have chosen PyQt5 because that is the GUI I am most familiar with. Here is my code for the Height Map Generation…
2
votes
1 answer

Inaccurate shader precision on android compared to webgl

I am trying make a simplex noise on android, based on this example: https://github.com/ashima/webgl-noise/blob/master/src/noise2D.glsl After converting the code and compiling it on the device, I realised that the pattern is far from random. I have…
andras
  • 3,305
  • 5
  • 30
  • 45
2
votes
1 answer

Random seed for Simplex noise

I'm procedurally generating terrain for games. I gave Simplex noise a shot. The terrain is generated beautifully. However, when I run the program multiple times, the terrain is the exact same. How to randomize the Simplex noise? from opensimplex…
Keto Z
  • 49
  • 1
  • 7
2
votes
1 answer

Convert 2D simplex noise to 1D?

Allright, I'm working on a small game here in Java, and I am using this Simplex Noise generator I found online. The problem that I am facing, is this: I'm generating the world of my game like so: int width = 100; int height = 100; world = new…
Makerimages
  • 384
  • 6
  • 27
2
votes
0 answers

How to implement 2D Simplex Noise/ 2D Perlin Noise ( C++11)

My problem is I dont know how to insert the simplex noise/perlin noise values to my world generator to produce a better looking landscape, is there anyone can show simple code showing how to implement it. BTW, im new at programming, so any answers…
2
votes
1 answer

What's the difference between Perlin and Simplex noise?

I've done a lot of reading on the two subjects, and I still cannot quite figure it out. From what I understand Perlin Noise (in 2D) generates a square grid, and you get the value of a point from that grid by calculating the contribution of each…
Jeroen
  • 15,257
  • 12
  • 59
  • 102
2
votes
2 answers

Simplex noise just seem to give random results

I'm trying to get my simplex noise(basically perlin noise with nicer complexity) to work and give me something nice like this: However, all I get is something that just seem random: I'm using the simplex code from here and am using it like…
dutt
  • 7,909
  • 11
  • 52
  • 85
1
vote
1 answer

Why is no data getting written to image?

I'm trying to create procedural textures, and for that, I'm generating noise, and then writing that data to an image file, to be displayed. So far I generated the noise, and now I'm trying to write that to an image file, to display the noise. I…
Chillzy
  • 89
  • 8