Hi. I had a similar problem and find a way to solve it. But have in mind, I am new to Blender, so this can be not the best way to do it. Anyway - to tackle this transition thing you can use mix shader node and two dofferent shaders for orange and green materials. And for transition use gradient texture node, which goes to fac input of the mix shader node. In that case you will be able to control the transition fade with color ramp node. In case it is not very clear, I screenshoted node setup of my project.
And the final result -
Here you can notice the smooth transition between two materials.
Gumenas is basically right, except use of a gradient+color ramp to do this is only going to work in specific instances. In general, you would hand draw a black and white mask and use that texture’s values as the factor to mix between two shaders.
Neat thing with vertex color approach is that you can use a vertex color proximity modifier and use an empty or hidden object to control the mix. And if you figure that out, it gives a fairly intuitive way to control the falloff by moving the controlling object around. Only downside is that it requires the mesh to have some moderate to high level of vertex density.
Yup… luckly subdivision smooths vertex colors.
For me, the most annoying thing about vertex colors, is that Cycles stores them as sRGB, so a value of [0.5,0.5,0.5] will not end up as a 50/50 mix.