CYCLES: Using the anisotropic node to approximate true glossy dispersion.

The image should pretty much explain itself, luckily you can see exactly how it is done by downloading the file.

Cycles_Ref_dispersion.blend (567 KB)

Around the beginning of April last year, Mike Farney made it his task to finish up the anisotropic node as a last contribution before he left to work on the Arnold renderer. Later in October, Brecht finished up and committed the patch and an unrealized treasure-trove of new shading possibilities came up.

As of now, the materials I’ve seen using the material for purposes outside of metal have been somewhat few, more recently I had a couple of ideas of how recent features will allow the creation of glossy dispersion effects. The first one was taking advantage of the new normal input to see if I could change the angle of reflection for each color channel, and while that worked it was more like a slice of colors rather than a smooth blurring. So as of this evening I decided to go along with my second idea of using three different copies of the anisotropic shader and combine it with the normal alteration through use of rotating coordinates and combining it with the incoming vector.

The result is what you see above, it may be a tad less accurate than what get from a true spectral render engine, but I personally think it looks pretty convincing for Cycles, but I would like to hear your thoughts.


QUICK EDIT: I knew I forgot to include something, added a ‘strength’ input which is there to include how much alteration is done to the shading coordinates, this can be used to decrease the width of the dispersion effect beyond what is the minimum otherwise.

This is a terrific start. I observed this physical phenomena a lot among plastic structures in sun lid environments. However the rendered effect is too strong. You rather would have small colored dots among the white dots inside blurred reflections.

The group node is designed to allow you to greatly reduce the effect if needed.

I uploaded an updated version of the file with added options for top-coat fresnal mixing and a new set of defaults (so it won’t be so strong out of the box). One of the reasons I made it strong to begin with was to ensure that it would work well in extreme cases (if that’s what the user wanted for some reason).

Is this what you’re talking about?

Also, do not panic if you see a sort of film interference effect on the surface when the rendering starts, it goes away after 100 or so samples, the green part of the dispersion will also not generally appear until there’s enough samples rendered.

mh this might be something to be added to the car shader thread.