Solid Noise Documentation
The Solid Noise texture generator creates two-dimensional (2D), random textures in Adobe Photoshop® for Windows. Such primitive textures are useful for numerous applications, including realistic clouds, bump maps, landscape generation, grunge effects, and many others.
After installation, the filter will appear under the Filter → Render sub-menu where it operates like any other Photoshop filter.
Beginning in 1983, Ken Perlin developed a “procedural texture” algorithm. In essence, it assigned random vectors (independent random numbers in horizontal and vertical directions) across a square lattice and compared them in sets to local displacements. The result produced realistic, random patterns of noise.
He later improved the scheme and removed slight texture seams which became visible in certain applications and increased the algorithm efficiency in higher dimensions without losing textural features. Given a few minor issues with his original implementation, he eventually developed an alternative “Simplex Noise” which produced similar textures and had a speed advantage in two or more dimensions. However, the classic version is still preferred by many.
This current implementation embraces Perlin’s original procedural noise approach using his improved interpolation scheme between the random lattice and the local displacement vectors.
Given modern computer systems, it also implements an arbitrary lattice size with a large permutation table, enabling the textures to be vertically scaled (e.g., landscapes) over an extremely large range before any pattern repetition.
The image on the right shows the Solid Noise filter dialog. Briefly, the preview window lies on the left, which displays the approximate result of the current filter settings. The main controls occupy the right side, which modify the general size of noise features, allow the user to set the level of Detail, and control the final output settings. Example textures are shown later, but the easiest way to discover what types of patterns are possible is to play with the options and watch the result in the preview window.
The user may also hold the control key when launching the filter to skip the dialog window and apply the filter immediately with a new random seed at the current dialog settings. A separate filter allows the filter to be applied in Difference mode much like Difference Clouds in the standard Adobe Photoshop filters.
The Preview window occupies the left side of the window with a Zoom selector are at the bottom. The Progress bar on the bottom left will update frequently when the settings sliders on the right are adjusted.
The Structure settings control how large the patterns will be, ranging from clouds or blobs to sponge, fiber, or thatch patterns depending on the relative values of the Horizontal and Vertical Size sliders. The values are related to the image dimensions in pixels, so values closer to half the total number of horizontal or vertical pixel counts will give a cloudy, diffuse appearance along with other default settings.
The Random Seed slider and the Randomize button both change the displayed pattern in a random, but repeatable, way. If you find a particular texture to be interesting, the seed value will regenerate the identical pattern.
Detail controls include Octaves, which is the number of noise textures added together at increasing frequencies, which contribute to the pattern detail. Higher values yield diffuse clouds, fibers, or rough textures where lower values produce a softer appearance. Increasing this value beyond 6 or 8 is generally unnecessary, as the image cannot display the level of detail beyond a certain threshold, depending on the image size.
Persistence controls the weight of successive Octaves as they are summed. At very low values, the resulting pattern is very close to an Octaves level of 1 or 2. A typical range for Persistence is from 40 to 70. At higher values, it effectively increases the detail contrast and may cause the image to partially “wash out” with pure black and white pixels. The latter effect can be mitigated by the Stretch Grays toggle as described below.
Distortions perform in-filter manipulations of the base texture. Ken Perlin coined the term Turbulent for summing the absolute values of the noise Octaves with the idea that the result resembles a turbulent fluid. The similarity is an approximation, but we use the same terminology. The Liquid toggle that creates smooth “fluid-like” textures or increased “roughness” depending on the Structure size and detail level. The effect is very similar to Turbulent at low Detail, but as the Detail increases, Liquid produces significantly different results. Normal is the default noise texture, given the other dialog settings.
Output features include Invert which simply inverts the grayscale image as a convenience. Note that in the Solid Noise Difference filter, it inverts the image applied to the adjustment rather than the final image after the difference.
Tileable makes the texture seamless at the edges. We apply a lattice method to create a seamless texture, which avoids mild “flattening” artifacts toward the image's center which is caused by averaging the texture over several patterns (a common method of creating seamless textures). It also allows images with any dimensions to be tiled (as opposed to restricting the user to a multiple of 256 or some other number).
Stretch Grays is similar to “Auto” in the Levels adjustment applied to a generated texture within Adobe Photoshop®. In most cases, it forces shades of gray to span the full gray scale spectrum (in 8- or Adobe 16-bit values, as appropriate), but it retains slightly more image detail than applying a separate post-texture adjustment. More importantly, high levels of Persistence can cause the image can become “overexposed” where pure white and black dominate the pattern, and Stretch Grays will smooth the effect at the expense of compressing the mid-range gray shades to some extent.
At the bottom of the dialog, one can reset the filter to default settings at any time by pressing the Defaults button. The About button displays information about the filter. OK accepts the current settings and generates the image inside the currently selected Adobe Photoshop® layer, mask, or channel. Finally, the Cancel button rejects the current settings and returns to Adobe Photoshop® without generating a texture.
Solid Noise produces a monochrome texture that can be applied to RGB or grayscale layers, channels, or masks in 8- and 16-bit image modes. The image mode is selected automatically from the current layer in Adobe Photoshop®. I tested it on images as large as 4000x3000 pixels with a runtime of approximately several seconds on a 2.4 GHz PC with 2GB of RAM running Adobe Photoshop® CS6 Extended.
While ground-breaking for its time, the original Perlin noise algorithm actually reveals artifacts across lattice boundaries for certain extreme lattice parameters. For large Structure sizes, these are present but is essentially invisible. When one of the Horizontal or Vertical scales decreases toward one, the lattice boundaries along the perpendicular dimension (in 2D) become gray and flat.
In a brief explanation, parts of the noise contributions shift discontinuously to different local gradient vectors across lattice boundaries. The effect is inherent to the original design and is therefore unavoidable in the current filter, but I plan on implementing variation to side-step this problem in the future.
This is the reason that I cap the bottom range of accessible Structure sizes. Even so, the degradation in the pattern is still visible as a darkening along the direction perpendicular to the smallest Structure dimension.
Unless otherwise stated, all content and images are copyright © 2013 Peter Ronhovde
Images of the Sun are from NASA archives.