The Texture Synth filter

This filter clones an image in a randomized fashion to fill the target resolution:

Base image:512×512, non-tiling.

Generated image: 1024×1024, tiling.

The base idea is not complicated: the image is split into 9, similarly sized overlapping areas (patches), each patch gets a mask and randomly placed on the final image:

http://www.zspline.net/blog/wp-content/gallery/tutorial_thetexturesynthfilter/fig01.jpg

The 5+4 slices on the image.

http://www.zspline.net/blog/wp-content/gallery/tutorial_thetexturesynthfilter/fig02.jpg

The basic mask for the patches.

http://www.zspline.net/blog/wp-content/gallery/tutorial_thetexturesynthfilter/fig03.jpg

The randomly placed patches.

To make the patches less obvious we’ll tweak their masks a bit, but this is still a rather simple algorithm which needs guidance from the user to produce acceptable results.
There are 5 distinct steps to setting up the filter, each with its dedicated view mode and group of controls. Each step focuses on one particular aspect so with a little practice it will be easy to configure it to work with most input images.

Step 0: Selecting the input images.

Two images are necessary: A Blend and a Base (although they can reference the same picture). The blend image defines the shape of the patches while the base image provides the content for each patch. This way the same settings and same blend image with different base images will produce matching results. A typical example for this would be a diffuse-bump texture pair, used as base images:

Base diffuse

Generated diffuse

Base bump

Generated bump

(These images were rendered from a 3d model created with 123D Catch.)
Since FilterForge can handle 16 bit per pixel data it’s recommended to keep bump textures in that format. Also note that due their nature bump maps usually work better as blend maps than their diffuse counterparts.

Step 1: Selecting the input channel.

The blend image is used to break up the simple mask, the radial gradient shown above. In this step we select which channel of the image will be used for that. Setting the View mode slider to 1 will display an overview of the available channels: Hue, Saturation, Brightness, Red, Green, Blue, Cyan, Magenta, Yellow.

The red frame indicates currents selection, defined by the Blend Map Channel slider. (The controls in the View Mode 2 group also have an effect, adjust them if you see totally black or white previews.)

Try to pick the channel which best separates a “foreground” from the “background”. It’s not always obvious what the best choice is so don’t be afraid to experiment.

Step 2: Tweaking the input channel.

View mode on 2 shows the selected channel in full size so it can be fine tuned using the controls in the second group. Inversion, brightness, contract adjustments are self explanatory (these operations are applied in this order). Smoothing performs an edge preserving blur which can help when a blend map produces noisy results.

Step 3: Patch setup.

This step is about defining the final shape of the patches. View mode 3 shows the first of the 9 patches, a good indicator of roughly how the rest of them will look like. At this point the blend map is already mixed with the base round patch mask, so the controls in the 3rd group affect that mix.

Patch Coverage defines how big area in a patch will be fully visible. It is recommended to set this parameter as high as possible but low enough so the patch does not touches the edges, so the seams there are not visible.

Patch Contrast controls how sharp the edges of the patch will be. A high value makes sense when there are well defined objects/areas on the image so a hard edge makes sense. Lower values produce gradual fade out which works better for more homogenous surfaces.

Noise Amount adjusts how much random distortion is applied to the base mask while Noise Scale changes the size of the effect. It is useful when the blend map is not enough to break up the round shape of the patch.

Ideally the patch has an odd shape and its contours resemble the content of the base image, kind of like on these examples:

Step 4: Patch placement.

Now we tweak the way the patches are arranged in the final image.

Patch Size controls the default size of a patch. Due to technical limitations, it works the opposite way as expected: a higher value makes the patches smaller.

Patch Size Chaos sets how much the patch sizes are randomized (they are scaled both up and down) while Patch Rotation Chaos does the same for rotation.

Patch Density is a multiplier: the higher it is the more patches will be placed on the image. Try to keep it as low as possible for faster rendering.

If Base As Background is true then the patches are placed onto the base image. It helps filling the holes which might appear at low Patch Density density values.

Step 5: Patch tinting.

The final step is randomizing the colors of each patch.

Tint Amount controls how strong the tinting effect is. Tint Method defines the mode used for changing colors: overlay, soft light, hard light, vivid light. The tint color comes from the base image, from the pixel under the center of a patch.

With Tint Saturation we can tweak how saturated tinting colors are used. In certain cases high Tint Amount could cause over saturated results but that can be compensated through this slider.