When you are using the auto-shader, you are not allowed to directly modify Material objects (because the auto-shader can’t detect this). Instead, create a new Material object:
material = Material(material)
material.setDiffuse(color)
And use an override when you reapply it, in case you’re not applying it to the actual node that contained the original material object:
Yes, but directly changing the parameters of the Material will not change the MaterialAttrib that references it. The only way to change the MaterialAttrib is to create a new Material object.
Ok, I find the answer. By default the material ambient color seems follows the diffuse color. I add also material.setAmbient(color) the blending issue is gone.