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
0
votes
1 answer

Physics.Raycast not working with a Marching Cubes -generated mesh

What it spits out My raycast spits out a position way off from what it's supposed to be. I'm trying to place objects procedurally on a procedural mesh. I've been scratching my head at this for a while. Please help. Sorry for the long script. The…
0
votes
1 answer

How does Roblox's math.noise() deal with negative inputs?

While messing around with noise outside of Roblox, I realized Perlin/Simplex Noise does not like negative inputs. Remembering Roblox has a noise function, I tried there, and found out negative numbers do work nicely for Roblox's math.noise(). Does…
jdice
  • 1
0
votes
1 answer

Issue with seamless 1-D SImplex noise

Typically when generating seamless Simplex noise the strategy is to go to 4-dimensions (a strategy which has worked well for me in the past when using 2-D Simplex), however I am trying to generate a seamless GIF loop using 1-D simplex noise (only…
erik
  • 3,810
  • 6
  • 32
  • 63
0
votes
1 answer

Godot - How can I make my chunks generate around the player in a 3 by 3 grid

How can I generate chunks in a 3 by 3 grid so that there is always 9 grid instances in the scene? Currently I only have 1 chunk generating every time the player moves to a new area/chunk. To make it easier for you guys I put it into a github repo so…
Dragon20C
  • 307
  • 2
  • 11
0
votes
0 answers

Gain/Persistence in Simplex Noise based on slope

I'm currently working on a terrain engine and I'm experimenting a little bit with noise. It's so fascinating to see what different structures, functions and pure imagination can create with just a few lines of code. Recently I saw this post:…
Matthias K.
  • 43
  • 11
0
votes
2 answers

Light generation algorithm for clouds on the iOS platform

I'd like to fill the background of my app with animated clouds. I did some research and stumbled upon the perlin noise algorithm which seems to be fitting. However even in the first test it was extremely expensive to generate a 512x512 (2D) cloud…
Paul
  • 1,295
  • 2
  • 11
  • 26
0
votes
0 answers

Is there any way to improve performance of my procedural generation code?

I've been working on a project lately that creates procedurally generated terrain which uses 3d simplex noise as well as the Marching cubes algorithm. I am currently running it on my cpu which takes around 10-20 seconds to render a 200x200x200…
0
votes
1 answer

SimplexNoise rescaling the Gradient inside fbm

How do i need to modify the gradient vector in my fbm loop? The Problem is that i can't get the Normals calculated right with this code... They are pointing just a bit off the right direction, this causes strange lighting. Here the calculation of…
Nils J.
  • 101
  • 1
  • 1
  • 8
0
votes
0 answers

Color individual vertices on a plane threejs

I want to create a terrain generator with three.js and simplex noise, but I don't know how to color the vertices on the plane according to their biome. Here is my code: document.addEventListener("DOMContentLoaded", function(){ var noise = new…
Obed
  • 15
  • 3
0
votes
0 answers

Simplex 3D noise animation halts on mobile

I'm using Stefan Gustavson's GLSL impl. of Simplex noise and animating it using WebGL. Works just fine on desktop, but on my Android device, both Chrome and Firefox, the animation always halts after a fixed period. There's no error/warning, the…
ydaniv
  • 1,289
  • 11
  • 18
0
votes
1 answer

CDLOD issue with lighting while morphing triangles

I have an Icosahedron subdivided and with LOD. Now i am trying to add a dynamic Material. The Problem is that i need the Normals for that. I use Unreal Engine 4, when i use the build in Function to calculate Normals i get strange Artifacts in the…
Nils J.
  • 101
  • 1
  • 1
  • 8
0
votes
2 answers

Simplex noise to generate a set of images

I need to generate a set of images using simplex noise. Below you can find the code I developed and an output image. How can make the code to generate different images every time I run it? At the moment I get the same image every time I run the…
albus_c
  • 6,292
  • 14
  • 36
  • 77
0
votes
1 answer

Processing noise implementation has strictly positive range

At this page, and in the docs for p5.js, Perlin noise is described as having an output range of [0,1], but all other implementations I've found have a small range symmetric about 0, and it seems that this is what should theoretically hold as well.…
0
votes
1 answer

SimplexNoise not giving out correct image

I am currently toying around with Noises, like Perlin and SimplexNoise. When I integrate the Noise function into my code, I get something that looks like static, which it clearly shouldn't be. Here is my current code: // Width and Height are screen…
Snailtan
  • 1
  • 2
0
votes
0 answers

How to draw simplex noise fast on JavaFX canvas?

I'm using Kurt Spencer's implementation of OpenSimplexNoise found here. I'm trying to draw the resulting noise on a 512x52 JavaFX Canvas as fast as possible. Note: Not shown in the code below for simplicity, the draw functions takes in a zoom level…
AlwaysNeedingHelp
  • 1,851
  • 3
  • 21
  • 29