Arnold specular roughness


I got a bit of conundrum here. Arnold (in Maya) and specular roughness. If I input numerical values into it, I get completely different effects compared to if I input a texture (See the photo attached). The funny/weird thing, is that no matter what texture I input into spec roughness (pure black, pure white, a proper detailed texture etc., anything actually!), I get the exact same look no matter what. What is going on?

Surely a greyscale texture is nothing more than a set of numerical values, and as such it should be able to generate the same effect as if you had put that numerical value in procedurally/with numbers/sliders. Why not?

It is puzzling/frustrating me no end. I hope some of you know the answer!


Further to this, if I input a procedural checker texture I get the desired effects, however any image based texture produces only that same diffused look, no matter the values in the texture.

Any takers?


Either I am asking something awfully stupid, or this place has gone awfully quiet!?


It’s a float value, so what ever texture you plug in, it’s using it’s alpha. You click alpha is luminance?


Thanks for being a life-saver! That did the trick.

However, now I have the enduring question: where can I learn more about the connection between floating values and render engines? It is obviously one of those terms you have heard thrown about, but don’t quite know how they exactly impact your work…


Ok, ill try and explain it :slight_smile:

Float values in a shader have just one parameter. If you look at the aiStandard shader, float values are all the ones that have a single numerical input (diffuseWeight, diffuseRoughness, diffuseBacklighting etc). These can only use a single channel as an input. Color inputs (like diffuseColor), take 3 inputs.

So, you have a texture file (say, a jpg), which has 3 channels, RGB (think of them as 3 float values), but a float parameter can only take 1. What does it do? It plugs the alpha into the float paramter. If the file doesn’t have an alpha, it defaults to black (i think, or maybe the default color, one of those!).

So either use the Alpha is Luminance, or you can manually plug just the R,G,B channels in if you want.


Why are you trying to plug in a texture into the specular roughness?

Just curious, I’m working with an Arnold type shader in a different program. It would seem to me the specular 1 and specular 2 would control any blurred reflections, specular 1 being sharp and specular 2 being pretty rough. Why would you want to control it via a map unless your were trying to display the character as being wet? Or wet paint on the face or something?


Looking at my desk, there are loads of finger prints, and scuff marks, all change the spec roughness.


It’s just as important to have complete control over the roughness of a reflection as it is to control how much reflection there is. Almost no surface has a constant roughness so it’s important to give it variety.


Here we go…

Arnold’s at it again. Or more likely me, not knowing what I am doing.

These 4 renders has the same diffuse and bump maps. Specular roughness settings are different. I have done my lookdev with numerical values - getting the looks I want for the metal, paint, wood etc. on this asset. Naturally I expect to then feed Arnold these values via a texture map and reproduce the same results. And yes… Luminance is Alpha has been checked.

Other than that, I am clueless. Whatever map I plug in, I get something which is not terribly different from the numerical 0.2 input (but still the highlights on the edge of cylinder on the train is markedly different).

Any suggestions? Any painfully obvious things I have overlooked here, which negates the values of these maps?


I could be wrong here… but I am pretty sure, by default, Arnold gamma corrects all your textures for you, so when you plug in a .6 value texture map, it’s not really seeing it as .6, but rather .6/2.2=.2727 which could explain the reason why your .6 textured glossiness is so different from your .6 numerical value. So make sure you either change the defaults and gamma correct yourself, or change the color profile in the texture node.

It’s been a while since I used Arnold, and I don’t have a copy in front of me, so I can’t test if this is the problem…

Hope this works for you!


…or you could change your texture to float 32 .exr and it should read it correctly… I think…


Why specular roughness value jump to 1 after connected texture?
I try fix it by Gamma Correct but it doesn’t work correctly,
How can I fix it?
Ai Skin Material I used.