Arnold skin specular IOR bug


#1

Hello,

I have encountered a problem a problem with Arnold skin shader, the problem is connected to the IOR on the specular components, both main and sheen layers, the problem was noted on the Solidangle support site - https://support.solidangle.com/display/AFMUG/Specular+Layer , the bug it self is darkening of the shader on specular highlights at glancing angles, considering the bug exists and Arnold is still widely used, I want ask if someone has a solution to overcome this darkening, which absolutely kills the picture, especially at higher fine detail bump map depth values?

Thank you very much for any ideas

Vadim


#2

I havent used Arnold in production for 2 years. So can’t test and say for sure a solution to your problem with the current version of Arnold…
But I used it for a year as a lead shader artist when I was working at Triggerfish studios. I encountered a similar problem of energy conservation breaking with fresnel curves in the standard shader aswell.
And I found the problem was due to arnold having incorrect fresnel layering math on the standard shader, this looks like the exact same problem to me except now repeated again on this new SSS shader.

The problem was basically the fresnel curve would darken the diffuse component by only the fresnel curve and not take into account the strength on the spec map and ks value first, so if you had a spec map plugged in you would get dark edges with fresnel ticked.

The workaround for me was to break the shader into two shaders, one for diffuse, one for pure specular(chrome ball basically) and layer them together with my own fresnel curve as the mask between the two shaders. But with the exception of this fresnel curve being multiplied by the Ks and Spec map values first before being used as the mask between the two shaders.


#3

What MtoA version are you on? This was fixed (somewhat) in MtoA 1.0.0.x. Another workaround is to connect a white ramp to the specular weight attributes. Then you can set the alpha gain on the ramp to 0.3 and control the specular weight by changing the “V” value of the ramp color. This was suggested on the support list and had worked for me at that time.


#4

I am using MtoA 1.0.0.1, I will try your approach with the ramp, thank you very much.


#5

Have a look at Anders shaders too

https://bitbucket.org/anderslanglands/alshaders/wiki/Home

A few quirks to using them, they’re physically accurate so doing any cheat/toon shader stuff isn’t great, and the transmission/opacity is a bit limited on the alSurface, but overall a much better complete shader than the built in.


#6

noiz, I have used the ramp solution and in the result it reduced the effects but in the max-glancing situations it still gets pretty damn dark :shrug:

Hezza, damn thanks, gonna try 'em out, looks very promising.

P.S. MtoA 1.1.0.0 was pushed recently to developers and it does state that they reduced the darkening effects, though it seems it is still a problem even in 1.1