Material Function rediculousness.

Hey all.
Just wanted to yet again voice my disappointment over the way that Landscape + Material Functions behave.

How is it possible that opening a material function and click Expose To Library on it causes recalculation of ALL landscape shades that use that function?
The function wasn’t changed! there’s literally nothing to recalculate! -_-

“Serialize” function override… It triggers the whole thing :slight_smile:

Please expand on this.

I see the function is part of the UMaterial

Are you suggesting re-writing it at the engine level, or triggering a setting or what exactly?

Also while on the topic, perhaps you have a suggestion for this.

Say you make a change. apply it, then before the compiling is done you make another change.
The shaders you started to compile are pointless - the engine in fact just piles other shaders on top. However the shaders still keep compiling wasting time/resources.
To the point that whenever possible I save, close and restart the engine.

Isn’t it possible to force the old shaders to stop compiling when the same new ones are added to the compiling list?
Wouldn’t this be a useful obvious improvement for general engine usage that should be looked into?

I was saying I don’t know if Epic can fix it.
Serialize is called in many different situations, whatever changes data in asset package is going to make it execute, it’s a vex lengthy and complex chain of events leading to shader compilation.

Oh, makes sense.
I assume someone at Epic would know better about all of that - especially if they coded it.

However as far as usability goes it’s definitely something they should look into - particularly with the latest updates to the landscape causing so many shaders to compile. Which as far as I can tell is the same within the preview…

While I don’t know what serialize does (I’m stuck compiling shaders obviously). I would think there would be no need to call the function when no actual changes to the material occur - like in this case adding a description to a material function.
the HLSL doesn’t seem reflect the function description or what category it is filed under within the editor.
Another similar issue is when you move something’s position within the editor - the material hasn’t in fact been changed.
The position of a node or adding a reroute doesn’t actually change any of the code that needs to be compiled and is entirely just the visual reference frame you can verify with a ctrl+c/ctrl+v

So, while this is how it currently works, I think there is obvious room for improvement…

Oh and, ditto on adding categories to scalar parameters. Yay for me, another 10k to compile.

All the things you mentioned do make changes to the materials object… it’s weird, but they do. Even moving nodes around lol

Maybe they should remove whatever they do to force auto compilation and expect the user to always click the Compile toolbar button instead.