Hot answers tagged

27 votes
Accepted

Does the original Perlin noise ever have any advantage over Simplex noise?

To directly answer the question: Simplex noise is patented, whereas Perlin noise is not. Other than that, Simplex noise has many advantages that are already mentioned in your question, and apart from ...
user avatar
24 votes
Accepted

Why does my Perlin Noise look "blocky"?

The interpolation looks fine. The main problem here is that the hash function you're using isn't very good. If I look at just one octave, and visualize the hash result by outputting ...
user avatar
  • 23.7k
20 votes
Accepted

Why is it twice as expensive to make a noise function that can be tiled?

It's unfortunate that people commonly recommend this. Blending between two (or four, etc.) translated copies of a noise function in that way is a pretty bad idea. Not only is it expensive, it doesn't ...
user avatar
  • 23.7k
17 votes
Accepted

How can I generate procedural noise on a sphere?

I'd consider just going with 3D noise and evaluating it on the surface of the sphere. For gradient noise which is naturally in the domain of the surface of the sphere, you need a regular pattern of ...
user avatar
12 votes
Accepted

benefit of perlin noise over value noise

The benefit of perlin noise is the overall distribution of frequencies. Since value noise uses simple values that are interpolated, there is a higher chance, that a row of several values only differs ...
user avatar
  • 518
11 votes

Is all grid based noise inevitably anisotropic?

As usual with numerical methods and samplings, it also depends of your quality threshold of what you consider "isotropic". And of what you would consider as a being or not a "grid-based ...
user avatar
10 votes
Accepted

How to modify Perlin (not simplex) noise to create continental like terrain generation

Perlin noise is just a base block, not very interesting by itself. You don't need to modify it, but to combine and filter it in interesting ways. Look at how to make fractal Brownian motion (fBm) with ...
user avatar
9 votes
Accepted

What's a proper way to clamp dither noise?

TL;DR: 2*1LSB triangular-pdf dithering breaks in edgecases at 0 and 1 due to clamping. A solution is to lerp to a 1bit uniform dither in those edgecases. I am adding a second answer, seeing as this ...
user avatar
8 votes
Accepted

Is it possible to directly generate mipmap levels of perlin noise?

I would say yes with a small asterisk. When generating a perlin noise texture, using multiple of octaves of noise like you are talking about, the point of adding higher octaves (higher frequency ...
user avatar
  • 7,331
7 votes
Accepted

How does a 2D Fourier Transform of an image work?

A 2D Fourier transform is performed by first doing a 1D Fourier transform on each row of the image, then taking the result and doing a 1D Fourier transform on each column. Or vice versa; it doesn't ...
user avatar
  • 23.7k
6 votes

Perturbed image texture implementation from renderman language

As you've surmised, the transform() function transforms points from one co-ordinate space to another. (There are also ...
user avatar
  • 6,440
5 votes

What makes a good permutation table?

First of all - a number must not occur twice, that is implied since we're talking about permutations. So filling the table with a simple random(255) function won't work. Secondly, you need to ensure ...
user avatar
  • 151
5 votes
Accepted

What is the basic idea of denoising?

Is denoising ALWAYS about doing a low pass filter / blur? No, but this is the most obvious technique. A good denoiser isn't just a filter that runs on the image, but actually performs the ...
user avatar
  • 6,440
4 votes
Accepted

How to approximate the heightmap of processed wood?

A sine wave remapped to [0, 1] and raised to a power will give you periodic ridges: (Desmos graph) That could be a good place to start. It will make perfectly straight, even ridges; but you could ...
user avatar
  • 23.7k
3 votes
Accepted

Help understanding Perlin Noise

Yep, you've got that right. In Perlin's reference implementation of "improved noise", the noise will be periodic, repeating after 256 units along each axis. It's usually not very noticeable even if ...
user avatar
  • 23.7k
3 votes

What's a proper way to clamp dither noise?

I am not sure I can fully answer your question, but I will add some thoughts and maybe we can arrive at an answer together :) First, the foundation of the question is a bit unclear to me: Why do you ...
user avatar
3 votes
Accepted

Creating a gently moving 2D fog effect

Animated noise can be created by using time as an extra dimension. So instead of 2D noise, you'd use 3D noise with time as the z-axis position, like ...
user avatar
  • 23.7k
3 votes
Accepted

How to create 2D (directional) noise?

Why don't you just use Perlin noise twice on the same grid, or volume? Each with slightly different parameters (a phase shift, or different pseudo-random vectors). In this case both component of your ...
user avatar
  • 967
3 votes
Accepted

Procedural terrain: What's the best approach to calculate noise in the GPU?

r a similar problem (a tree of combined noise functions, evaluated on the GPU), I found a good method is to generate a shader from the expression tree. Each predefined node corresponds to a single ...
user avatar
  • 811
3 votes
Accepted

Analytical derivative of a 3D Simplex Noise field

I have published it, in several versions, and it's not difficult to do it. Simplex noise is a lot easier to differentiate because it's a sum of polynomials, rather than a nested polynomial ...
user avatar
2 votes

What is the basic idea of denoising?

It certainly isn't always about low pass filters (see for example here on WP on "Noise Reduction") but you have to keep in mind that in your case the noise will always have a high frequency because ...
user avatar
  • 246
2 votes
Accepted

Finding the normals of a tileable 2D surface extracted from 4D space

Since the question was somewhat clarified I will formalize both the question and the answer for future readers. Having a differentiable scalar field $f : \mathbb{R}^4 \rightarrow \mathbb{R}$ we want ...
user avatar
  • 1,788
2 votes
Accepted

What noises can be sliced?

Worley noise, also known as cellular noise, has the same property. It just as easily implemented as Perlin noise and easily extends to higher dimensions. Thus the slicing of 4D Worley noise will ...
user avatar
  • 967
2 votes
Accepted

Perlin Noise, surface deformation NOT along the normal vector

You can do this, and the results can be interesting, but they’re pretty far from looking like realistic terrain. Here’s a plane deformed with 3D simplex noise (Perlin doesn’t look significantly better)...
user avatar
2 votes

Noise and fragment shader

Perhaps this will be helpful: Typically when I think of noise in computer graphics I also think in terms of a grid, usually the grid is 2D or 3D. (the rest of this post refers to 2D noise) So given a ...
user avatar
  • 2,094
1 vote
Accepted

Nice way to make noise seamless (without tampering with the noise generator)

If you can't change the textures, I see 2 possibilities: Use mirrored repeat on the noise textures so they tile seamlessly. (taken from here) Do like Gimp does (or many other alternatives) and ...
user avatar
  • 790
1 vote

How to create 2D (directional) noise?

You can use the gradient of the noise/hash which for a function $f:\mathbb{R}^n\rightarrow\mathbb{R}$ would be $n$ dimensional (depending on the application this may not work for you). Another ...
user avatar
  • 1,788
1 vote

ScratchAPixel : Understanding how to use Perlin's permutations hash table

First, (1/2) I didn't understand how the hash table is actually used. The workflow I think I understood is the following : For an input (coordinate), we find the both nearest pre-defined ...
user avatar
  • 1,575
1 vote

unwanted patterns in simplex noise

I know im a bit late, but hopefully this can help other people. you can add detail by using Fractal Brownian Motion. There is a great article here that i used as a guide to make my own version in c#. ...
user avatar
  • 11
1 vote

What's a proper way to clamp dither noise?

I've simplified Mikkel Gjoel's idea of dithering with triangular noise to a simple function that only needs a single RNG call. I've stripped away all unecessary bits so it should be pretty readable ...
user avatar
  • 186

Only top scored, non community-wiki answers of a minimum length are eligible