Hot answers tagged

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 ...
Nathan Reed's user avatar
  • 24.8k
13 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 ...
Timm's user avatar
  • 538
11 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 ...
Julien Guertault's user avatar
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 ...
Fabrice NEYRET's 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 ...
Mikkel Gjoel's 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 ...
Alan Wolfe's user avatar
  • 7,751
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 ...
Dan Hulme's user avatar
  • 6,700
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 ...
mhbuur's 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 ...
Dan Hulme's user avatar
  • 6,700
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 ...
Nathan Reed's user avatar
  • 24.8k
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 ...
Nathan Reed's user avatar
  • 24.8k
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 ...
Mikkel Gjoel's 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 ...
Nathan Reed's user avatar
  • 24.8k
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 ...
gilgamec's user avatar
  • 881
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 ...
Reynolds's user avatar
  • 1,188
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 ...
Stefan Gustavson's user avatar
3 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 ...
pmw1234's user avatar
  • 3,030
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 ...
lightxbulb's user avatar
  • 2,083
2 votes

Does MRG32k3a compare well with PCG and Xorshift256*?

Short answer is yes. MRG32k3a has withstood the test of time, much more than PCG or XorShift256*. In fact, a recent paper by Matsumoto (creator of Mersenne-Twister) shows some poor properties of ...
jherek's user avatar
  • 121
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 ...
Reynolds's user avatar
  • 1,188
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 ...
flawr's user avatar
  • 246
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)...
Noah Witherspoon's user avatar
1 vote

Perlin Noise implementation looks blocky in WebGL2

I made a mistake while translating the code from JavaScript to GLSL. The first line in the perlinAux function: ...
Nipun Garg's user avatar
1 vote

Why the gradients generated in original Perlin Noise causing axis-aligned clumping?

Very briefly, Perlin noise ideally is meant to have, on average, the same frequency characteristics no matter where in the texture you are or in what direction you are looking. However, the way it's ...
Simon F's user avatar
  • 4,171
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 ...
bernie's user avatar
  • 820
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 ...
lightxbulb's user avatar
  • 2,083
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 ...
Olivier's user avatar
  • 1,585
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#. ...
DOSLuke's 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 ...
orlp's user avatar
  • 186
1 vote

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

Perlin noise not good for real planet surface because planet surface is not random. Planet structure is create by geology/physics and interaction between different parts. This video show geology ...
Châu's user avatar
  • 21

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