Fakey Iridescence Material (nodes)

I’m trying to make a general purpose iridescence material that could be used for anything that requires a bit of glow, like paint or jewelry or coral or soap bubbles or whatever.

Iridescence is caused by wave interference between a surface and its under-surface (substrate). The angle of view shifts the hue of the surface color. It’s a form of sub-surface scattering, but it’s the thin-filmed kind that Blender does not support. Besides, SSS is expensive, and this is pretty darn fast.

Anyhoo, here’s a short vid of my tests so far, and a .blend file. Please excuse the blobby models :rolleyes:.

Blend file (includes 3 scenes, so check that):
irid_tests.blend (178 KB)

Basically I hue shifted according to the surface normal’s direction away from the camera. The rest is tweak.

To tweak it yourself, start with the “Power” node, which will adjust the falloff. Then fiddle with the next “Multiply” math node, which will determine the range of the hue shift. Then play with the color in the Hue/Saturation node. You can also set the base color of your material in the normal way, as well as the specularity, etc.

I have a lot of “tweak points” in the node setup since I’m testing. Anything with a type-in value is fair game.


Private video, yo…

Drat. I changed it. Thanks for the heads up. I wondered why nobody was viewing it!:eek:

It’s at a point where it’s useful now. I changed the setup so that I could choose how much fakey iridescence goes to the specular and the diffuse area, and added more control points (hue shifting is now controlled by a ColorRamp). Apparently, nodes kick major butt.

It has a suprisingly wide range of possiblilites. The only issue now is wrapping my brain around all the available settings. If only there were a “PostIt” node where I could type text to describe what a nearby node does…
iridescence_tests9.blend (162 KB)

That’s really pretty, nicely done! I’ve gotta start learning these so-called “node” things…
All I’ve managed to do is copy the DOF sample incorrectly…

hey, nice material, what about using a color ramp + colorband for the specularity ( far left in materials buttons ) on top of what you are doing with the nodes.

I messed with it some more so you can choose how much of your base specularity (set with colorband, etc) and diffuse goes through to the final result. Also, you can choose whatever base color you like.

Along with other tweakage, I made some simple pass-thru pyNodes to clarify what’s going on. It’s a performance hit, but the clarity is SO worth it. Almost all variations can be tweaked in these 3 nodes:

And here are some bubbles with rather silly shadows:

Blend file:
bubbles.blend (577 KB)

Nice effect. If you have a tablet, maybe the grease pencil would do as a post-it?

OMG thanks! I didn’t know grease pencil worked in the node editor. Excellent!

Another iteration. I fixed the hue_start shifting so you can input a simple color map to establish the hue. Also, I added an “Angle_Death” input so things like butterfly wings, whose iridescence dies at a particular viewing angle, can be done. Here a simple example with a jpeg-nasty texture:

One frame:

Left wing is a standard color map. The right wing pipes the same color map into the hue_start input, and has a high angle_death value.

Blend file (reduced texture size):
morpho_wings.blend (393 KB)

Those are some stunning materials Blinkozo. Well done and well thought out.