Thin Film Shader

General

Shimmering soap bubbles (here with varying Thickness (mm)) and anti-reflection coat (note the fingerprint, which itself is a Thin Film) on lenses are easy to create using the Thin Film shader.

You might wonder why all colors of the spectrum shimmer in surfaces of soap bubbles, oil film on water, mother of pearl, etc. The reason this happens is a special physical effect referred to as ,thin film’ or ,interference’ effect. This effect occurs on very thin transparent surfaces whose thickness is approximately that of the wavelength of visible light (around 500 nm). The light is reflected by both front and back sides of the film:

Both reflecting light rays overlap resulting in an interference.

Both reflected rays overlap (interfere) and the difference in paths produces an amplification and attenuation of the waves, i.e., changes in color.

These changes in color are dependent primarily on the following properties:

Minor modifications to these properties will result in major changes to the rendered result.

The Thin Film shader, if implemented, works physically correct as described below, i.e., if you want to render realistic-looking results you have to create realistic lighting setups (e.g., by using a Physical Sky, luminous reflectors).

Implementation

The Thin Film shader can be loaded into any material channel, just as any other shader can. It will only work physically correct if it is loaded into a Reflectance channel's Texture field (preferably in a Beckmann or GGX layer) in the channel's Layer Color menu. Specular layers should be disabled.

For soap bubbles, the Transparency channel should also be enabled and its Additive enabled.

Open the following scene to see an example:

In General, the following applies: To get the most out of this effect you should make sure that suitable reflective objects are used; HDRI textures can be applied to a Sky Object or layers with luminous materials can be used.

Tip:Note that the thin film effect can also be used on materials such as leather, rubber and metals, etc.