9
$\begingroup$

I am a bit confused by the parameters of the Noise Texture node in Cycles. The Blender manual does not really shed much light on the topic.

Specifically:
1) What does the distort parameter do?
2) What is the range and distribution of the noise in the three color channels?

I have tried adjusting the noise output "by eye" with color ramps, but I would really like to have a more mathematical way to do it. I am trying to use the noise texture to generate bump maps, so it is hard for me to visualize exactly how the pastel looking texture will translate.

I am familiar with Perlin noise in general. The scale parameter seems fairly intuitive. I assume that it sets the fundamental spacing of the lattice or simplex points. My experiments in adjusting scale seem to confirm this, but I wouldn't be surprised to learn there is something more going on here. I assume the detail parameter is related to amount of higher frequency noise that is added. The usual parameters for this are octaves, persistence, lacunarity, etc. I'd like to understand what "detail" actually means. Playing around seems to confirm the general concept, but it always has less contrast than I am used to for Perlin noise. I expected the output value fac to be normally distributed between 0 and 1, but it doesn't seem to be close to that. It looks more like a normal distribution between about 0.7 and 0.9. When I render colored noise and look at the RGB channels, each channel seems to have a similar distribution.

Here is a histogram from the GIMP showing noise with default parameters:
noise histogram

Is it possible that my rendering setup is causing this? I have the noise texture pluggen directly into an emission shader as shown below. I have no lights, the camera is 1 meter away from the plane, and the camera is pointed directly at a plane with this material applied:
node setup

I apologize in advance if I am mixing up two completely different questions with the noise texture and the emission shader. I am still new to Blender, so it is difficult for me to separate some of these things.

As for the distortion parameter, I have played around with it a bit. Obviously, it is distorting the noise and adding a lot of detail in the process, but there is no reference anywhere to the math involved. I assume that the Blender devs are implementing some known algorithm. I animated distortion from 0 to 10 to see the effects. Interestingly, from 0.0 to 1.0, the noise just seems to translate, then the distortion builds from about 1.0 to 9.0. From 9.0 to 10.0, there is not much going on. distortion
GIF animation->gif animation link to higher quality avi animation

$\endgroup$
1
$\begingroup$

I don't think having a math formula will help much in getting the visual effect you want. But if you are really into understanding the math implemented in blender, I think your best chance is looking into the code. The relevant files are /intern/cycles/kernel/shaders/node_noise_texture.osl and /intern/cycles/kernel/shaders/node_texture.h.

I am not familiar with Perlin noise, but looking into the code, "detail" seems to refer to the number of octaves. It is hard for me to understand what "distortion" does, but noise is generated not at original point, but at a point shifted by random (and strange) amount proportional to the distortion.

Since you are more familiar with the stuff I think you'll be able to get more out of it (and maybe post it as an answer).

$\endgroup$
  • $\begingroup$ Thanks for the recommendation. I hadn't considered looking into the OSL source because I thought it would be opening a can of worms, but at first glance it does seem approachable. The <code>distort</code> portion is broken out easily. I'll also try to add a bit to my question regarding why this is relevant. It's not just for idle curiosity. A lot of techniques start with coherent noise (Perlin/Simplex) and use Fractal Brownian Motion (fBM). The Cycles noise texture is usable, but it has some "extra" treatment after the normal noise generation algorithm. $\endgroup$ – James Duvall Aug 29 '16 at 5:17
0
$\begingroup$

Concerning Distorsion, I successfully changed this value to randomize seed. I use 3 noise textures to create a starfield. One is for white stars, others for blue and red ones. Unfortunately, red and blue stars appeared exactly at the same place than white ones. Adding some distorsion fixed this. I guess this value was designed for other purpose or it would be called "Randomize" or "Seed", but it worked pretty well !

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.