Generating anisotropic highlights or reflections on polygon objects, was a real pain for many years. We always were jealous of NURBS surfaces which allowed artists to generate anisotropy along UV parametrization. Once polygons received the ability of anisotropic highlights, the users wanted more. Anisotropic reflections have the power to add great deal of realism to renders and became a handy tool for everyday use.
In the past I have done jobs which required the use of anisotropic patterns and those had always been faked with maps and the like. But now there is no need for faking anymore. A very nice feature of the T2S_Illumination shader enables the manipulation of the anisotropy vector orientation which makes it possible to generate realistic reflection patterns over the surface.
A big thanks to the folks at Tek2Shoot for that one.
Reflect on this
Obviously we’ll be building off T2S_Illumination.
Disable the Fresnel option under the Fresnel tab. This is done to see the full reflection strength of the material – metals often don’t have any or very slight Fresnel reflections. Enable the Reflections under the Scattering tab and switch the Glossy mode to Anisotropic. Set the Shiny U/V parameter to 1 and 100. Under the Anisotropy tab change the mode to North Pole to see how the reflections could look like. Later we will switch it back to North Direction.
To make the reflections visible, create an environment which will be reflected. You can setup some objects in the scene or just use a spherical map.
Applying this material to a grid with proper UVs (Planar XZ projection), shows the nice circular anisotropic reflections as seen in your kitchen on a cauldron’s bottom.
The next step is to recreate that North Pole behavior in the direction vector. To achieve this we have to provide a vector map that manipulates the north direction, so that it points to the center of the grid.
Switch back the Anisotropy mode to North Direction.
In Photoshop, you can very easily create such a vector map. All you need to do is to make two grayscale gradients. One is from right to left in the red channel of the image and the other is from bottom to top in the blue channel. Make sure your gradients are linear and not cubic (smoothness 0 vs smoothness 100).
These colors will then be interpreted by XSI so that the full red color will point to the positive x direction and black will be pointing to the negative x direction, pos z and neg z respectively for the blue color. To do this the color channels must be split apart and remapped to a vector. By using Pick_Channel and Change_Range nodes you can easily remap color values (0 -> 255) to a vector component (-1, 1). After having done this for both red and blue channels of your picture, you can recombine the scalars into a direction vector by using a Scalars2Vector node.
One last thing to note is that even if your texture is applied locally on the object, the vector that is built with the texture’s values is defined in world space. To get proper anisotropy that will follow your object’s every transform you need to convert the vector to object space by using a Vector_Coordinate_Convertor node. Switch the Transform to to Object.
At the beginning of this article I talked about Anisotropic Patterns and their creation. Now that we know how to create custom vector direction maps there is no limit to the anisotropy patterns we can render. For example: a typical brushed finish of stainless steel.
A very simple map can generate the same effect.
And the same thing for some really nice looking Carbon Fiber material.
I hope this article, beyond anisotropy, has helped a few people better understand the world of vector usage in the Rendertree.
You can download the material preset.
Thank you and have fun with these tricks…