Noise, Perlin noise and esthetics of random

Here it is, a title which, as usual is quite confusing. First of all here we will not discus mathematical nature of various random number generators (which is also an interesting topic). And we will focus on esthetics of random. Random… what? Well anything random I guess.

So as I see it there are two ways of making things esthetically more interesting*. One would be depicting more. Say we have a plain wall, we would want to see 5 layers of paint which where applied, and in some parts the paint is cracked and we see bricks, also we see a spider web and so on. This is one approach, and it is a best way to achieve visual detail, and make our frame more interesting. But it takes time to construct both wall, and spiders and dirt and so on. Another approach is to increase detail by adding random elements, which by themselves do not depict anything in particular, but in certain context might be perceived as intended detail.

plian white wall
plian white wall
rich white wall
rich white wall

Again noise is just noise. But if we use gray noise placed above depicted fireplace, viewer will think its a smoke. If we add same gray pattern of noise on plain wall, viewer might interpret it as a dirt on a wall. This way is much faster. And this is what we will talk about.

First of all lets see a simple Perlin noise pattern, and a multiple scaled Perlin noise patterns. (image A)

perlin noise, taken from wikipedia
perlin noise, taken from wikipedia

And in picture “B” we see variations of Perlin noise (here I am not certain if it is actually a perlin noise, probably not, corrections are welcome) which intend to depict something more precise then abstract noise itself.

cedural maps "Celular, Dent, Perlin marble, marble", 3ds max, image B
procedural maps “Celular, Dent, Perlin marble, marble”, 3ds max, image B

So a simple comparison could sound like this.
Perlin Noise. A boring plane noise which is rather abstract and doesn’t depict anything in particular. Which is also a good thing as an element to construct more sophisticated noise like effects.
Now there is nothing better then Scaled multiple Perlin noises. It has different size elements (see image A) and is almost a god in cg world (no?). And variations of Perlin noise, which could be modified to depict wood and other interesting patterns. But what is the difference between Perlin noise – and multiple scaled Perlin noises? Well, I would say that its all same plane noise, but it goes towards depiction, towards sophistication, towards no randomness.

So desired noise for image enhancement, should look like intended detail rather then just random detail. What I want to say, its not the detail itself that is a valuable a detail, its a detail that has something behind it. And its quite tricky to make automatic algorithms that would not only add detail such as Perlin noise but a noise of a sort that somehow depicts something, without a necessity to actually take care of what it depicts. And for that I think we need to look in to such procedural maps as “planet” in 3d s max. Its is gone in new max versions.. (why?). Also in some older posts I suggested to build materials, or procedural maps that would “feel”the geometry they are applied upon. Especially the last link talks about an extra detail on edges of mesh.

One example from real world. Some days ago I was walking in a street and saw a window. It was dirty and covered in paint. But the paint was not running down, but upwards. Now first thought would be that it is an unneeded detail, which , if it where a CG shot, not a real life would make no sense and would complicate understanding of an image or a shot. And then I found a possible reason for paint running “upside down” Most likely the glass was already dirty, and a person who made window used dirty glass without directing it in any particular way from point of view of paint on glass. What I am trying to say, is that observer will always try to find explanations, and be it correct or incorrect, one always might find reason behind something. And here is the question: If it would have been a CG shot, would it be a bad shot, because if one notices this it makes them uncomfortable, ads an unnecessary level of thinking and so on. Or is it a good shot, because rather then having a clean boring “plain”glass we have some visual details…

So I guess the point of this post is to make a note, that we do want detail, but not just any detail, we want it to be “in the context”. It has to depict something, somehow. And if it actually doesn’t depict anything in particular, we should strive that a viewer would find its meaning on his own. Its a tricky task, and I guess.


*Here I have to make a note and remind you that I am by no means implying that more complicated is better, more detailed is better, visually overwhelming is a desire. But In some cases it might be the case (or some of these statements at least). Just imagine a white wall, which is shot in a close up, and all u see is just a wall. It covers hole screen. Now say a wall is white. So we can imagine a situation where we have a whole image containing only of pixels of rgb value 255,255,255. If you would not know beforehand that it is a wall, wouldn’t you say, its just blank white screen? So in some cases more detail is better. And hole today’s post is dedicated only to this situation, where more detail is better.


I have remembered this blog article of mine sis I found this cool interview with Ken Perlin himself! One nice idea he has is: if something is too complicated, add another dimention to it. What does that mean? Listen to his interview at fxpodcast here:

link to fxpostcast with Ken Perlin about noise, aesthetics and perlin noise too!

another article here: link


Viewport Improvements

One thing that takes long time while working is related to procedural maps and viewports.

If you have an empty scene, and one object, its not so hard to create a shader using procedural maps for it. Well it could still take time, What I what to say here is, It doesn’t take time or effort to apply a noise map in diffuse Chanel, render it all, look and continue adjusting noise size and other parameters. Each time rendering result to see the effect of your adjustments.

Now its a very different story when, A. you have very complicated map. Noise, or other procedural map represent only some very small and hardly noticeable part of general diffuse map.

Or B. your scene is full of objects, it has caustics and indirect illumination on, some volume fog and whatever else. In both cases it becomes very time consuming to isolate your procedural map to generate test render. That’s why one would click ”show standard map in viewport”

show standard map in viewport button

in material editor. And it works ! :) Quide good for texture maps (bitmaps). And we do not need perfect quality here, its just a viewport, just a guideline. But look what happens with procedural maps:


Well, it shows idea of noise. But size is all wrong. Which is the worst, I think. It has other problems, some cutting lines are visible.. but noise is noise, not such a big deal…  but if we are using planet (which no longer exist in max 2010) or say Perlin Marble…  –

Here is one example, say I have Utah teapot. And I what to add marble pastern, so its veins would go horizontally.. or, even more complicated, one vein should go around the opening of pot, where one adds lid..

perlin procedural maps in viewports
perlin procedural maps in viewports

here, u see picture (1) from viewport followed by rendered final.

And 2, what I had to change to have correct alignment of marble veins.. how could I do that without rendering? Here its simple, one object, only one texture… but.. If I have a situation described in the beginning of post?

Descriptions from max help file:

3D Maps

    3D maps are patterns generated procedurally in three dimensions. For example, Marble has a grain that goes through the assigned geometry. If you cut away part of an object with marble assigned as its texture, the grain in the cutaway portion matches the grain on the object’s exterior.

Turn on Show Map In Viewport.

    The map appears on objects assigned the material in all shaded viewports. Now when you adjust the map, the viewports update to display the adjustments.

    Turning on Show Map In Viewport for one map automatically turns this button off for all other maps the material has.

    Viewports can display 2D maps such as Checker and Bitmap.

    Viewports can also display most kinds of 3D maps. The exceptions are Particle Age and Particle MBlur. Also, the appearance of the Falloff map in viewports give only a vague indication of how it will appear when rendered.

    Show Map In Viewport is unavailable if the active map type cannot display in viewports.

    Displaying mapped materials in a viewport can slow performance. If you don’t need to view the texture, turn off its viewport display.