In a scene I have a materiallibrary where a simple (redshift) material and a constant connected to diffuse color is created. If I create an edit material afterwards and load the material I see it as I created - all good.
Now if in the materiallibrary I change the original material by breaking the connection on diffuse and instead connect the constant to spec color (or anything else) and then go back to my (already created) editmaterial node - nothing in here will have changed. Meaning the update did not come through (automatically).
What is worse, if I look at the stage (usda) file I can now see that the color constant is connected to both inputs - the diffuse color and the specular color - which is very wrong.
This kind of makes sense to me on the face of it: The original materiallibrary only writes one line into the code saying that spec color is connected (after the change). And because the editmaterial wasn't updated yet, it still has the shader loaded how it was before when the constant was connected to diffuse color. So it also writes this line into the code. None of the nodes write lines in the code about parameters they don't change, so the edit material doesn't remove the line in the code about the constant being connected to spec - it just adds its own one (which is now outdated).
Parameters have a checkbox next to them which tells the editmaterial if this value should be overwritten or just passed through - but there doesn't seem to be something equivalent for connections. In fact even deleting the color-constant in the editmaterial doesn't change anything - in the code it is still there (again makes sense, because now the editmaterial just doesn't add it's line about it. But it never removes existing lines from the code, it seems).
So now the questions:
1. am I using the editmaterial node wrong - is it not meant to be used in a procedural chain where the input could change?
2. is there a way to update the node to the current state of the input, without deleting it and placing down a new one? (like keeping all the already made changes)
3. is this maybe a purely redshift bug that I should bring up with them? As I said I never get it to work properly with a principled shader for example - all nodes connected to the shader are not loaded inside the editmaterial.
Any inside info on this is greatly appreciated!
PS: I have attached some pictures. 1,2 are from the original material, 3,4 are from the edit material without changes (they are identical), 5,6 are from the original material after changes were made (connection was changed), 7,8 are from the edit material after those changes - they don't come through in the interface, but now in the code we see both connections