I don't know if someone already wrote a small concept for a better smart material system. So I try to do it here. In my opinion it is really easy to understand. Of course I do not know how hard the follwing features are to code. But anyway.
Advanced smart material concept ideas by Christoph:
What is a LINKED smart material in 3D Coat in the future?
You can link a smart material to one or more layers. This means you click with the RMB on a smart material within your smart material library and set this material to an active paint layer. You can link one material to as many layers as you want. What happens then?
a ) If you change the origin linked material in the library, then ALL linked layers gets the new smart material values and refreshes immediately.
b ) If you change a linked material locally (by clicking the RMB layer menu) then the same happen like in step a: all linked layers and the origin material in the library refreshes.
And why this? Because they are ALL "linked". They are all using the same informations. It is logic isn't it?
What is an ATTACHED/LOCAL smart material in 3D Coat?
I like the idea to convert a linked smart material to "local" or attach it to an individual layer to use it there only. I like the word "local" in this case more then attached.
So what does an attached or local material mean?
a ) You can attach a material to one or multiple layers one by one. But every layer with an ATTACHED material became idividual.
You can change individual smart material values, but only the layer where the material is attached refreshes.
No changes in other layers.
No changes in the main library.
Just local changes.
You have an attached red material in layer A and layer B. Both has the same attached material. But if you change one of them, only the changed layer gets the new values. The other one stays. This is the current model we have in 3D Coat.
We should have three kind of paint layer situations in the future:
1 ) A layer with an linked smart material: One or more layers has linked materials. All this layer content changes, as soon as we change the linked smart material. By using the layer menu or by changing it in the main library.
2 ) A layer with an local/attached layer: One or more layers has attached materials. Every material is individual. You can change them locally. Even the origin material in the library will not refresh if you change a layer whitch was attached with it. Every information ist local. A small icon inside the material thumbnail in the layer could mark a local layer material.
3 ) A combi layer (default). What is a combi layer?
A combi layer is a combination of different paint informations. You have painted with several smart materials or just colors within this single layer. There is no specific linking or attachment to a single material because you used multiple painting informations and colors. So 3D Coat do not know (yet) what part in the layer have to be refreshed. But if you link or attach a new material to a combi layer, all information will be replaced by the new material. And you have a situation like point 1 or 2 above.
So. What is the problem to understand this? It would serve nearly all needs, right?
Thank you for your time
PS: Maybe in the future Andrew will develop a way to link to locally painted strokes. So we can maybe refresh a painted area of a single layer. But this is science fiction for now...