Anisotropic reflections from the real world. How to setup this?


I’m able to do isotropic reflections that becomes anisotropic at grazing angles (ref this midpage, and this page 63), driving the anisotropic tangent from texture coordinate/reflection (which sounds weird maybe). These always stretch in the direction you’re viewing (for floor like objects anyway), unlike anisotropic reflections originating from oriented microgrooves (from machining or polishing).

So the question is this: How does materials that are already slightly anisotropic in nature behave at grazing angles? Trying to blend these two behaviors looks plain weird, but I have no idea if real world would even behave this weirdly.

Sorry - misread your post

You might want to check out this thread:

Blending isotropic and anisotropic (reflection or radial tangent) is not the issue, that works fine and looks as expected. The weirdness arise when either blending tangents, going from reflection tangent at grazing angles to radial tangent at facing angles, or blending two anisotropic shaders with different tangent inputs. Distant objects at grazing angles on a floor would stretch towards you due to reflection tangent, while looking down at close object should be distorted normally based on radial/uv based tangent. But in the middle there is this weird curving going on which I intuitively feel would not take place.

So the question is: Does there exist materials/treatments in the real world that exhibits brushed anisotropic appearance at facing angles and where grazing angles make reflection stretch towards the viewer? I think there has to be, but then, how to achieve this? Is blending two shaders better than blending tangents, and why?

Can you align the anisotropy rotation to the camera position - using a derivation of this technique?

Imagine a long array of table tops made of this finish which is highly radially anisotropic. Does this finish turn into those mentioned in the papers in post #1? Is it angle only, angle and distance, or not at all? And what would be the dependencies? For this particular pattern in the video, rotation would already be used for facing (radial z tangent), and for grazing I’m still using texture/reflection plugged into tangent and some fixed (0 or 0.25, depending on which anisotropic model you use). Note that I have no idea why texture/reflection would work, but it seems to do fine at least for floors.

I was hoping to get away with a single shader call, but now I’m finding it more and more impossible.

Example image:

Ignore the foreground aniso objects. Is the aniso floor something that would happen in real life? With circular/whatever happening at facing angles (normal aniso stuff), transforming into reflections stretching towards viewer at grazing angles (reflection based aniso tangent).

I’m guessing what you are talking about here is the appearance of especially elongated reflections on some surfaces depending on the grazing angle, which the image below shows can be done in Cycles without even needing the anisotropic node.

Is this what you were talking about?

That’s part of the story, yes. But I find I need too high roughness to achieve the effect for it to stretch “long enough”. With anisotropic I can “help out” to what I observe. Ref Neil Blevins images of cars on a wet road in OP; wet = water = pretty sharp reflections (notice how sharp the distant background appears), yet the streak goes on and on :slight_smile: Water is considered isotropic, and I can achieve the effect I’m looking for by blending fairly sharp isotropic with fairly sharp anisotropic (aniso value around 0.5-0.6’ish) to get fairly sharp reflections and a good stretch. This isn’t a problem since I can turn down anisotropy at facing angles and tangent input gets less influence.

My real question is: If this wasn’t a wet road but some highly anisotropic surface (say aniso around 0.95) in the first place, does this surface transform into something less anisotropic at glancing angles, and how to deal with the different tangents (stretching in the water example requires texture/reflection -> tangents whereas typical brushed surfaces require UV or radial driven tangents).

I’m asking because I have nothing to observe having these highly anisotropic features :slight_smile: But I have a camera, and weather is pretty good, so maybe time for a city trip hunting for anisotropic tables? :smiley:

There’s a better way to do that (which can be done with just one shading node)

The key here is use of the incoming output of the geometry node alongside negative anisotropy values to get screen-space stretching (which in turn is dependent on grazing angles). The nice thing then is that you can precisely control how long the reflections are.

In my test scenario geometry/incoming seem to produce the same result as texturecoord/reflection. Was it luck/coincidence that they matched up, or would things go havoc if object is rotated (forgot to test)? Is texturecoord/reflection affected by orientation the same way textucoord/normal is (compared to geometry normal)?

But yeah, I think that part is pretty much covered (wet road and such). But I still find blending tangent types to be real messy, and blending aniso nodes to be more predictable. But hey, geometry/incoming as tangent - noted, thx.