Can't spread orange over black

Hello.
I am making a material that has rust on it and I can’t make it appear over the color black.


If you can see the orange is spread nicely over the yellow, but the black seems to be unaffected by anything. The idea was that the orange rust has to be over the yellow and black, not yellow only. Maybe I need a different node for it?
Thank you in advance for help.

The same way that multiplying any value with 0 will be equal to 0, multiplying any color (three values) with black (three 0’s), will also be black.
So you need a different operation to mix your colors.

Overlay doesn’t work either. Can you please give me an idea what node to use?

If it’s rust, it’s metal; if it’s metal, it’s painted, and rust replaces the paint, right? It’s not as if the plate is made up of strips of yellow and black going all the way through.

So don’t try to mix RGB the diffuse color with rust. Instead, mix shader a painted metal BSDF with a rusty metal BSDF.

If you want to mixRGB anyways, use “mix” style mixing. When should you mix? When that rust color ramp outputs white. You could remake it with the same markers and change the colors. (Or, you could mix on the basis of the blue component of that color ramp, which should only be non-zero in proportion to the whiteness of it.)

Agree with bandages here - use several principled shaders that represent each material; metal (metallic), paint (dielectric), and rust (dielectric). Then use masks to mix them together. If using bump masks, you may want to widen these masks to influence the neighboring material as well. I.e. widen the paint/rust mask and use it to let some of the bordering rust bumps also influence the paint bumps. The paint will bulge before it flakes off.

I will be honest, what you proposed about mixRGB sounded gibberish to me, so I will try the two separate BSDF and mix shader method like you and CarlG say is way easier, atleast it sounds easier. Thank you for the help.