Before reading this tutorial, please read my Anisotropic
Reflections In The Real World
tutorial, which discusses the theory of what makes Anisotropic
Reflections in the real world.
Here's the direction of the grooves.
Here's another anisotropic highlight on a sphere...
Here's the example of a CD or the bottom of a pot...
Here's the direction of the grooves that causes the pot picture above.
As you can see, the grooves always go in the perpendicular direction
to where the highlight is stretched.
Here's the standard anisotropic Highlight, which looks like Figure 3.
The orientation is defined in object space, so it defaults to the
grooves traveling along the x axis of the object, which of course
produces a highlight that goes straight up and down (again, the
direction of the highlight is always perpendicular to the direction of
the grooves). Changing
the orientation parameter from 0 to 90 will change the direction of
bumps, and hence change the look of the highlight to something similar
to Figure 1.
To achieve the pot example, you need to provide the shader with a more complex direction. That's where the orientation map slot comes in handy, which bases the orientation of the anisotropy off of a black and white map.In the orientation map slot, place a Gradient Ramp map and set it up like this...
Note the output amount is set to 2.0, and the Gradient Type is
Spiral. That produces this map...
Make sure to apply a UVWMapping modifier on your object, and set it to planar. Then apply the material, and we get the result we're after...
Here's the max file that made the image above: max_aniso.zip (Requires 3dsmax 8 or later)
3dsmax's Brazil Advanced Material in Brazil 1.0 or 2.0 Renderer
Brazil has an anisotropic highlight as part of the Brazil Advanced's
Blinn Highlight Shader. It's basically identical to the max highlight,
although the Anisotropy amount goes from 0 to 1 instead of from 0 to
Also, to get the pot example, you need a variation on the trick
above. Assign a gradient ramp to the Angle, however, make the gradient
look like this...
So have the gradient go from black to white. Set it to Spiral. Also,
note that the
Output Amount is set to 360. This is because, in Brazil the Angle is
from 0 degrees to 360, so you need to set the gradient ramp to go from
a value of 0 to 360, which is achieved by multiplying the black to
white gradient by a value of 360. So the color black remains 0, and the
color white, which is usually 1, is now 360. And we get the correct
Arch & Design Material in Mentalray Renderer
Mentalray is similar to the Brazil Material, except it does
anisotropic highlights AND reflections.
Here's an example of full anisotropic reflections:
To get our pot example, in the Rotation map slot place a gradient
set like this...
Note the output amount is 1.0. Make sure to apply a UVWMapping
modifier on your object, and set it
to planar. Then
apply the material, and we get the result we're after...
Here's the max file that made the image above: mr_aniso.zip (Requires 3dsmax 2009 or later, mentalray)
VrayMtl Material in Vray Renderer
Here's an example of full anisotropic reflections:
To get our pot example, in the Rotation map slot place a gradient set like this...
Note the output amount is 1.0. Make sure to apply a UVWMapping modifier on your object, and set it to planar. Then apply the material, and we get the result we're after...
Here's the max file that made the image above: vray_aniso.zip
(Requires 3dsmax 2014 or later, vray 2.4)
Another anisotropic shader comes with Darktree. This
anisotropic shader allows for a compressed highlight, but at first
glance has no way to control the direction of the highlight. Well,
turns out while there's no control in the main properties page of the
There is a hookup for it in the connections, allowing you to hook up
other darktree functions to specify the direction of the anisotropy,
for example Gradient - Absolute Shells (which will let you do the
compact disc type highlights such as the one in Figure 9...
So for those darktree users out there, you may wish to check into
using this for anisotropic highlights. Thanks to Paul Gulianelli
for the tip and shader example.
3dsmax's Shag Hair Shader in Scanline RendererAnother anisotropic shader comes with Digimation's Shag:Hair, the hair shader, which has a nice specular component.
However, because it's meant for hair and not geometry, it has a "translucence" component, which plays havoc with lights. For example, adding more lights to your scene will make the diffuse component get brighter and brighter...
This can cause all sorts of problems on non hair geometry, for
example, if I placed a light entirely behind the sphere, and
applied a hair shader, I'd still get a specular highlight on the
even though the light was not facing the surface I was looking at. A
version of the hair shader gives the user some control over the amount
of translucency, but in general I'd still only recommend this shader
hair, not geometry.
BMRT's Ward Anisotropic Shader
The standard ward anisotropic renderman shader works fine in PRMAN and BMRT. I rendered the images below through Animal Logic’s Maxman translator in max and rendered in BMRT. The top of the cylinder doesn't require any gradient to tell the renderer the direction, because the cylinder is a nurbs cylinder, and so the spun direction on top comes built into the cylinder.
Anisotropic Shader in Maya Software Renderer
Maya's Anisotropic Shader is pretty similar to the others, but as
with every 3d app, there are some variations you need to know.
Here's the shader's interface...
Notice that instead of an anisotropic amount, it has SpreadX and
SpreadY. This lets you explicitly define how tall and how wide the
highlight is. These settings give you the following result...
To get the opposite direction, invert the spread. So instead of a
spread of 15 by 1, try 1 by 15. This changes the direction of the
grooves, giving you vertical grooves, which gives a result similar to
The easiest way to get the bottom of a pot effect is to use a nurbs
cylinder. Here's the results...
So why does this work? In maya the anisotropy is based on uvs by
like max where the default is object space. And the
nurbs cylinder automatically has uvs that travel the top of your
cylinder in a spiral pattern. To prove this, lets take the sphere we
And now lets assign it a planar uvset from the front...
Notice how it totally changes the pattern on the sphere. So if you
want to define the direction of the grooves using maya's Anisotropic
shader, you can apply new uvs to your object.
While more flexible than the object space method, the uv method in
maya's shader is not without its problems. Lets convert our nurbs
cylinder into a polygonal cylinder (using maya's Modify -> Convert
-> NURBS to Polygons command). Notice how the highlight is now all
This is because maya's shader doesn't do proper interpolation
between uvs. The nurbs cylinder works because the nurbs cylinder is
diced into tiny polygons before its rendered, the polygonal cylinder is
rendered as is. The anisotropic direction is based off the uvs, and so
there aren't enough uvs to get a smooth result.
Ideally, maya's shader would have proper interpolation built in, but
since it doesn't, the only way to fix this problem is to smooth the
cylinder, i.e., add more faces to it. Here's the cylinder after I use
the Mesh -> Smooth command, which adds more faces. The highlight is
Max's Smoothing Groups Can Mess Up
One thing to note, in 3dsmax (for pretty much all renderers)
smoothing groups can mess up the way your anisotropic shader produces
results. Here's an example. This is a chamfered cylinder with a max
standard Anisotropic shader applied to it. The edges of the cylinder
are chamfered, however, there is no smoothing between the chamfered
edge at the top of the cylinder...
And here's it rendered...
Looks good. But now lets apply a Smooth Modifier to the object, and
set it to a large angle such as 60 degrees...
Here's the result in the max viewport, see how the chamfered edge is
now smoothing with the top face of the cylinder...
And here's the render, which looks nothing like you'd expect...
So if you're seeing odd artifacts, such as extra radial reflections,
check the smoothing on your object, it may be responsible for the error.
Here's a max file to check out the smoothing issue: smoothing_affects_anisotropy.zip
(Requires 3dsmax 2009 or later, scanline renderer)
Go to the Brushed Metal Materials lessons for more info on replicating anisotropic effects in 3d.