if so, then sure. it might break a lot people games, because they will change material params for one spatial and will not know why others change too. trully i think “true” param should mean that material will be shared.i had not modify material params internally, but if this was working this way, then it was wrong.
A few bytes, sure… most of the big stuff in material is still shared, though. So not as much as you might think.
No, I think the main reason for this is because when you load an asset from the asset manager you expect that you can modify it without also modifying every other instance of that asset that you previously loaded.
In the case that you know you want that behavior, then you can clone the spatial with clone(false).
What is the motivation behind making this the default?
The AssetManager Usecase definitely prevents us from changing this behavior.
The only problem is with instancing/batching which may rely on “the same” material instead of “equal” (probably to prevent equality checking every frame) (Is this even the case?)