Material broken... wont recognize changes to parameters.

Material broken… wont recognize changes to parameters.

certain paramaters wont show up in the material instance.. doesnt make sense. Like a weird bug i cant fix in the material and material editor.

So what do i do if nothing i do in a material will allow me to see the parameter… very clearly a bug.. Like somethings corrupted. Any suggestions?

Because if i make it into custom primitive data it works… but only if its not in a packed level actor. So amny different ways its bugged now.

Hey there @kurylo3d! That sounds like material data corruption to me, high complexity materials have this occur sometimes. You may be able to recreate it in a new material by pasting most of it and hooking things back up, but depending on what’s broken that may not help.

Are there any other effects other than parameters not propagating or being visible?

i mean i was just switching out parameters.. it was visible.. but now even if i create a new parameter and try to connect it … it dont show..

Original problem was packed level actor custom primitive data related…I have a switch to use the parameter as is or to use CPD… but the CPD worked in a level instance.. but didnt work in packed level actor… Then the parameter itself was unable to be changed… Like u can see the material instance change its viewer.. but not in the scene.. for the texture array…

but the material just got worse with the parameter not being visible at all in the material instance options..

Ill try to recreate it a little later.. copy and paste everything. This thing is just gotten worse and worse… tried deleting all the unused directories of the project.. like intermediate and all that… but that didnt help.

So the packed level actors won’t reflect any changes, but the instance (in it’s preview at least) does?

I mean at first packed level actors would default the texture array to slot 0, but if right click and do edit the packed level actor.. (or dont use packed level actors) the custom primitive data would work correctly. Again it wouldnt when it was an instance in a packed level actor..

Keep in mind the packed level actor CPD values were correct within it. I checked. They were not set to 0 for that value.

Then i went and just toggled a switch to not use custom primitive data. It stayed on slot 0 in teh texture array even when i set the material parameter to 1 or any other value. BUT… the material preview window showed it changing even though it woudlnt in the scene… And this was in packed level actor or no packed level actor.. So basically made no sense..

Then i tried replacing the scalar parameter with a new different name scalar parameter… After that no scalar parameter conencted to the input node showed up in material instances ever again… just broke everything.. no way to get it back.

1 Like

Just tried creating a new material then doing save as to overwrite the old one… Does not help.

In fact im realizing now my previous material instance does not update anymore… even when i disconnect switch parameters… the material instance still sees them… Even though they are not even used for anything.

Even when i delete them… the material instance still sees them. Totally broken… how do i salvage this?

1 Like

Even copying into a new materail and saving that new material under a different name… and a material instance from that is even broken.. this makes absolutely no sense.

I can literalyl delete everything that connects to the normal map input.. and the material instance still thinks those things exist.

1 Like

Im starting to find out my problems come from the normal map end specific. And while i disconnect the normal map i found a material function im using that has the same normal texture sample stuff in it to distort the color channel that is messing me up (fake refraction on the fake window normals). Shouldnt be doing what im describing… but ill mess with it and get back to you.

1 Like

Alright solution found…

2 bugs happening at the same time.

1.) Dont use texture samplers within a material function if you want them to respond to work correctly with packed level actors and custom primitive data.

2.) The scalar parameter was bugged for choosing which texture array when not using custom primitive data. I had to create a new scalar parameter and permanently change the name of the parameter to be different then before. Thats the only way the material instance sees it. If i try to go back and name it the original name it will disappear again. So thats my work around…

1 Like

Ohhh that makes more sense. Material functions shouldn’t be causing that effect for sure. The scalar parameter being broken is also concerning because if that occurs in a large enough project, that would be incredibly difficult to troubleshoot. Amazing work. If possible, could you submit a bug report in this case? It may save some users a headache in the future!

https://www.unrealengine.com/en-US/support/report-a-bug

1 Like

that scalar parameter bugg ive noticed happenign several times in many different materials. Where its not appearing then i have to recreate the paramater as a different name. It happens very often.

1 Like

yea i suppose i could. But it may be difficult to replicate. We have no idea if that is a singular occurence of the material function bug.

1 Like