Metalness map not working in Arnold

Metalness map not working in Arnold

sabramenkov5
Participant Participant
7,951 Views
13 Replies
Message 1 of 14

Metalness map not working in Arnold

sabramenkov5
Participant
Participant

So I'm making a bottle label that has metallic text on it. I have the label png image with alpha channel for where the metal should be. I tried both with a physical material and the Arnold standard surface.

 

First I tried using the normal bitmap for the base color and a copy of the same bitmap with Alpha as Gray and the output inverted. This doesn't work for metalness. It doesn't do anything, leaving the metallic bits black. But if I uncheck invert, the whole label becomes metallic, with the alpha text still black. This map works fine with opacity and transmission, doesn't work very well with emission, making all the text on the label emit light, not just the white alpha bits.

 

Then I tried making the png map in photoshop, metallic text bits white and the rest black. I get the same results with metalness. It just makes the metallic bits black and if I invert it the whole label becomes metallic. This map also works just fine for opacity and transmission and also works perfectly for emission, making only the white parts glow.

 

This issue seems to only be present in Arnold. I tried using the same map in ART, it works there, but doesn't work in Quicksilver.

 

Using the same map in 3ds Max 2014 with both mental ray and iRay works fine.

0 Likes
Accepted solutions (2)
7,952 Views
13 Replies
Replies (13)
Message 2 of 14

madsd
Advisor
Advisor

Some entries in the closures are reversed, or reversed and have a different scale curve attached, render to render.
It sounds like the way you used to work is not working with Arnold.

So and black means 0 in arnold, and 1 means full throttle and you only need to pipe in a float value.
A float value is a variating single number over some range, where a color or vector are 3 or sometimes 4 values.

This means any black and white image you feed into the metalness will trigger it according to the rules that the more white it is the more metallness and if you feed in black, it returns as if the metalness value was at 0.

Its likely you think you are parsing the b/w image in, but in fact does not, so if you can show a small plane with this texture you want to control with, we can take a look at it.

0 Likes
Message 3 of 14

sabramenkov5
Participant
Participant

I attached the mask map I made that I'm using for the metalness. Below are renders of the same scene in different renderers, all using a physical material with base color and metalness maps, Arnold is the only one that can't show the metallic text:

Arnold, only one without the metallic textArnold, only one without the metallic text

ARTART

CyclesCycles

QuicksilverQuicksilver

ScanlineScanline

0 Likes
Message 4 of 14

madsd
Advisor
Advisor

ccccc.pngxx.png

0 Likes
Message 5 of 14

sabramenkov5
Participant
Participant

Yep, I just found out if I remove the label image, the metalness shows uparnold_no-image.jpg

0 Likes
Message 6 of 14

sabramenkov5
Participant
Participant
Accepted solution

I tried the RGBA to float, but it doesn't seem to help. Seems like Arnold prioritizes color over metalness, and because the alpha in the label image gets converted to black, the black covers up the metalness. That's why it works when inverted, or without the label image. I'll try making the text white as a workaround, but this should be fixed.

 

Edit: Yes, changing the text to white did the trick:

arnold_white_text.jpg

0 Likes
Message 7 of 14

madsd
Advisor
Advisor

For more info on how metalness works look here ->

https://docs.arnoldrenderer.com/display/A5AF3DSUG/Specular+Reflections

Message 8 of 14

sabramenkov5
Participant
Participant

Thanks! Was reading that earlier too. Do you know why Arnold uses the black of the base color image itself to control metalness, not just the color in the map attached to metalness?

0 Likes
Message 9 of 14

madsd
Advisor
Advisor

Metalness is a float value, I don't know if you know what that is, but it means that it is receptive to single channel inputs.
Try pipe a colored osl noise through it, and you will see that the metallness is greyscaled, now try pipe same colored osl noise to diffuse, you now have color.
So you need to sort out the exact kind of info for metalness you need and then inject that, and only that, not just jack in a random colored image, even if its black and white, it still have RGB and A channels, and you need to split the stuff up for it to be predictable.

0 Likes
Message 10 of 14

sabramenkov5
Participant
Participant

I don't think that's the issue here, because my map works fine on a plain white object and works now with the text on the image made white, without the RGBA to float, so Arnold and the other renderers are able to parse and convert my image just fine. The problem here is that Arnold for some reason uses the base_color of the object to also determine the degree of metalness, not just the metalness map. You can try it yourself, same exact setup as you did, only make the object black. The metalness map won't work. I'm pretty sure this is a bug in Arnold, unless there is a very strange setting I missed. All the other renderers ignore the base color of the object when setting metalness, so it works on black.

0 Likes
Message 11 of 14

madsd
Advisor
Advisor

The metal appearance is controlled using the Base Color (facing) and Specular Color (edge tint) parameters. These are automatically translated to physical η and κ values, to achieve the same look but with easily tweakable and texturable colors. Some examples of real-world values for metals can be found below.



Base Color
Specular Color
Aluminium (Al)
 
0.912 0.914 0.920
 
0.970 0.979 0.988
Copper (Cu)
 
0.926 0.721 0.504
 
0.996 0.957 0.823
Gold (Au)
 
0.944 0.776 0.373
 
0.998 0.981 0.751
Iron (Fe)
 
0.531 0.512 0.496
 
0.571 0.540 0.586
Lead (Pb)
 
0.632 0.626 0.641
 
0.803 0.808 0.862
Mercury (Hg)
 
0.781 0.779 0.779
 
0.879 0.910 0.941
Nickel (Ni)
 
0.649 0.610 0.541
 
0.797 0.801 0.789
Platinum (Pt)
 
0.679 0.642 0.588
 
0.785 0.789 0.784
Silver (Ag)
 
0.962 0.949 0.922
 
0.999 0.998 0.998

 

Message 12 of 14

sabramenkov5
Participant
Participant

Ah makes sense. So if base color is black it just doesn't do anything, right?

0 Likes
Message 13 of 14

madsd
Advisor
Advisor
Accepted solution

you control the facing and edge tints with 2 seperate colors.

I guess you can look at it as a falloff function.

So if you plugin nothing in base the facing wont trigger and same for the edge tint.

Which are actually not sitting around metalness in UI, since the metalness draws energy from BASE and specular instead.

0 Likes
Message 14 of 14

sabramenkov5
Participant
Participant

Thanks for sharing your knowledge!

0 Likes