A Frequency-Based Custom Channel Separations workflow


Color Texture Shading

Custom Channel Separations

I would like to share a technique I have been developing in my compositing work, and explore how it might be expanded or improved.  The original idea came from Photoshop expert Greg Apodaca, a photo retoucher now working for Apple. Thanks Greg!

The advantage of this approach is that it allows direct manipulation of texture, color or shading independently of each other.

A perfect example of its usefulness in compositing is the case of shadows on a textured surface, such as a sidewalk, or a person’s clothing.  Using this technique, you can easily add, remove or edit shadow shapes without having to worry about the surface texture.  Likewise, you can edit the surface texture without regard to whether it is in light or shade at any given moment.  You can clone texture between lit and shaded areas freely.  This works equally well for cloning skin detail, fabric texture or film grain from one area of an image to another, or editing the shading of a textured area without changing the texture itself.


The technique, as it exists now, involves running images through Photoshop and using the High Pass filter to separate high frequency luminance information (texture) from low frequency luminance information (shading).  An optional step separates color information from the frequency channels, leaving them monochrome.

Once the separations have been created in Photoshop, I can re-create the layer stack in After Effects (because it supports the “Linear Light” and “Color” blending modes), but I have not succeeded in Shake or Nuke.  This is an area where I would love to have some help.

My ultimate wish would be if this process could be incorporated into the compositing tool as a native environment.  Similar to the way you can switch between color spaces, I would love to be able to switch into Frequency Space.

Download a psd:

Probably the most intuitive way to understand this process is to open a document and play with the layers.  Download this psd file: https://www.foggybog.com/images/bricks_01.psd and open it in Photoshop.  Be sure to open your Layer Comps palette for guided navigation.

• The top layer is the original image.
• The second layer is a folder with the three custom channels.
• The third set is identical to the second set, but with additional layers used as temporary aids.

Roll Your Own:

One objective in creating these new channels, is that the resulting stack of layers should add up to exactly* match the source image.   To this end my basic strategy is that when a layer is created, its inverse is subtracted from the base layer.

So, the steps used to create the frequency separations are as follows:

1.  Open an image in Photoshop.
2.  Create the Texture layer:
Duplicate the background layer and apply the Other>High Pass filter with a setting of 2 pixels.  Set the Blending Mode to Linear Light, and set the opacity to 50%.  Name this layer “HiPass 02”.
3.  Subtract the inverse:
Duplicate HiPass 02, move it directly above the background layer, and invert it.  Call this layer “HiPass 02 inverted”.  Duplicate the background layer and merge these two new layers.  Call the resulting layer “Shading”.
4.  Take the remaining background layer and move it to the top of the stack, for “before and after” comparisons.

You now have a simple frequency-based separation.
The optional step of creating a Color layer would happen before the first texture layer.  I will get into that another time.
The High Pass value of 2 is arbitrary for this example.  Values from 1-20 or more may be useful.  It is also possible to split the image into multiple layers by degrees of texture.

As many separations as you want

Here is an example splitting into four layers with High Pass values of 2, 5, 20 and the base shading layer.  http://www.foggybog.com/hipass/water_01.psd  In this one, I was able to create the illusion that the water had dried, leaving a stain.

water before
water after


Problems and Questions:

• What algorithm is Photoshop using for its High Pass filter?  There is more going on than just a High Pass convolve.
• How can I re-create Adobe’s “Linear Light” or “Color” blending modes in Nuke?
• What effect is the sRGB color profile having on my workflow?
• Can I re-create this in a linear color space?
• Why do transient whites and blacks get clipped with my current methodology?

© 2003 David Aughenbaugh