Need help with understanding the math of Noise texture

I’m watching this video explaining the math of Blender’s Noise texture.

I have a few questions related to that video, please help me. Thank you.


Question 1:

At 1:41, he says:

The detail parameter controls how many of these noises are generated and overlaid.

What is the math of the overlaying process? Performing lerp (Linear Interpolation) of the existing layers? Is there any other formula for overlay?


Question 2:

At 1:50, he says:

Each layer has a scale parameter that is twice of the previous layer

Is it specifically implemented that way or is it because the detail parameter in the video was set to 2 therefore the scale of each upper layer also is 2 times the scale of the lower layer?


Question 3:

At 1:58, he says:

When gradually increasing the detail, between integer values, the next level of detail gets gradually stronger, from no influence to its full influence when reaching the next integer value.

What does stronger and influence mean in this context? More impact on the look of the Noise texture?
In order for a layer to take part in changing the look of the Noise texture, that layer must have amplitude > 0, then “influence” here means amplitude, right?


Question 4:

At 2:34, he says:

Setting this (Roughness parameter) higher gives more and more influence to the smaller noise levels, until reaching one, where all levels have the same influence.

All layers having the same influence means having the same amplitude, doesn’t it?
But when I screenshotted his visualization and analyzed it…

… , the top layer clearly has the largest amplitude and progressively decreases at lower layers, they don’t have the same amplitude (or influence) at all.

The easiest way to answer those questions is to look at one of the noise implementations in blender. For example: https://projects.blender.org/blender/blender/src/branch/main/source/blender/gpu/shaders/material/gpu_shader_material_fractal_noise.glsl

Note that I’m no noise expert and what I’m writing below is only what I got from that file.


The noise layers are simply added on top of each other and at the end the noise is normalized to fit between 0.0 and 1.0.

Doubling the scale with each level is hardcoded in the current implementation.
The detail parameter controls how many layers of noise there are.

Yes.

The noise curves in your screenshot not all reaching the full amplitude might just be a matter of chance (and maybe a badly chosen example). As you can see, most noise values don’t actually reach the full amplitude. Even in the top curve with the highest frequency there are only two spots touching the red lines.
If you were to look at larger sections of the other two noise curves you’d probably find values that reach the full amplitude, as well.

I hope that helps somewhat! :slight_smile:

1 Like

This is the answer that I was looking for. Thank you!

1 Like