Thin film interference in Indigo
Now that Indigo 3.4 has officially reached stable status, we're experimenting with new features for Indigo 3.6, the next big release.
One of the new additions to Indigo 3.6 will be the coating material. The coating material simulates a thin coating of some kind of material over another material. For example, you can now create a thin coating of varnish over a metal material.
This material is kind of cool, but things start getting really interesting when you switch on interference.
Depending on the thickness of the coating, and how the thickness varies over the object (which can be controlled by a shader) you may get a kind of rainbow effect, or the material may just take on just a few colours:
What is going on here is a simulation of thin-film interference. Thin-film interference is a fascinating phenomenon, where light reflected from a very thin and smooth layer of something can give rise to very bright and varied colours. What happens is that light waves that enter the layer reflect back from the bottom interface, and exit out of the layer. This reflected light interferes with the waves that were reflected directly off the upper interface. Depending on how far the wave had to travel through the layer, which depends on the angle of the wave with the surface, and the thickness of the layer, and depending on the wavelength of the light, the light may constructively or destructively interfere with itself - effectively cancelling or increasing the brightness for a particular colour (wavelength).
Thin film interference is the effect that you can sometimes see in films of oil on top of puddles, in soapy bubbles floating through the air, in oxidation layers on metals such as aluminium, and all kinds of other places.
Colour from thin film interference is one of a class of colours called structural colours. These are colours caused not by absorption, (the usual cause of colour) but by the interaction of light waves with structures about the same size as the wavelength of the light (500 nanometres or so).
I'm pretty happy to support such interesting effects in Indigo, and I'm looking forward to seeing what can be done with materials using thin-film interference by Indigo users!
You can follow the forum thread about coating materials here.