Mesh gets distorted/decimated at runtime

My mesh gets what looks to be decimated at runtime.

In blender/Staticmesh editior and the blueprint it looks fine.

Ive been through what feels like everything, Anyone got any ideas?

Ok so Ive been through all my Lod settings maybe something got jammed on.
I opened a few objects in the matrix editor. and nothing stood out.

  1. I brought in a fresh blueprint and thats messed up at runtime as well.
  2. Ive replaced/renewed/updated/reimported.
  3. Checked all the materials/textures

Static mesh editor looks correct the whole time. Level editor looks fine.
The complex collision box at runtime does match the crumpled mesh.

Ok if I drag in the static mesh into the world its fine as well. so its something to do with this blueprint.

Ok so I added another mesh to the blueprint. The new mesh is absolutly fine. the original mesh, Is decimated. What in the heckers is going on here.

Sigh ok Ive been at this for couple hours now.

If I swap this mesh with literally anything else its fine. It seems to be sometype of curroption with this static mesh component and this mesh.


Ok more testing

  • Copy and pasted the component into a fresh blueprint. Its fine.

Ok Im starting a new reply only because Ive made headway

Duplicated the blueprint and deleted everything.

Now the component loads correctly…So its not the comp. Its something in the blueprint doing it.

Shame Ive got like 200 objects and a years worth of logic…xD…

Its something in this. Ive used this for well over a year with zero issues. its something here.
(Its all unplugged atm as Im playing with it)

THe plot massively thickens.

RIght so same material instance parent

Except this one doesnt work


This one does

Every new material instance I make has “Static permutation resource” as false.

Checked the differences and the only one was “usage flag overrides”

Nanite was ticked for the one that works and unticked for the one that isnt, Ticked it and now it works fine and the mesh is back to normal.

weirdly

If I go to my master material and look for nanite, enable used with nanite.
a material instance has Static permutation resource set to false but works still.

Ok what the hell. One is false is one is true…So thats total doody

Ok in conclusion for today atleast.

So I think this is what happened but Im still totally unsure. I am…not good at this so pinch of salt xD

I think I reimported my car shell.

In doing so, I reset the materials. Now I only use material Element 8,9 so Thats what gets DMIed. Thats why I do this so If I reimport I dont get errors.

However my dash cluster glass got reset as well. that material for whatever reson, is what gave the grief that led me down the wrong path. I pulled the loop back to 8,9 only and the glass is manually attached. the glass material never enters the DMI function and the mesh stays normal.

Ive been on this for several hours xD hopefully somewhere this helps someone.

If your mesh is deformed with no reason as to why related to the mesh itself

  • Duplicate the blueprint. Removing things in a pattern of your choosing till the mesh comes back to normal

    Mine was a DMI/material Issue that worked for months and randomly stopped. Maybe its the update from 5.7 to 5.8.3? delayed issue till I touched it maybe.

If anyone could fill in the blanks. Id absolutly love to know whats going on here and why


Mine isnt fixed yet. Ill update this when I get a chance, I have some ideas as to why

The decimated look is the Nanite fallback mesh, not a corrupted static mesh component.

When the static mesh has Nanite on, the full clusters are only drawn if the material in use has the Nanite usage permutation. If that material instance has Nanite usage overridden off, the renderer cannot draw the Nanite clusters with it, so it draws the non-Nanite fallback (the generated low triangle mesh). That fallback is exactly the crumpled, decimated shape, and it shows up at runtime on the component that has the bad instance assigned. The static mesh editor, and a drag of the raw mesh into the level, still show Nanite, because they are not using that instance. A second mesh on the same blueprint stays clean if it is not Nanite, or if it uses another material. Copying the component into a fresh blueprint looked fine once that material assignment was no longer on it. The blueprint logic was not deforming the mesh.

The two flags you compared are not the same switch:

  • Used with Nanite on the parent compiles the Nanite shader permutation. Instances inherit it unless they override usage.
  • Static permutation resource true means this instance has its own compiled permutation. False means it reuses the parent’s. False can still be Nanite, if the parent permutation includes Nanite. True with the Nanite usage override turned off is its own permutation that is not the Nanite one, so that instance falls back. That is why one instance reads false and works, and the other reads true and does not. Ticking Nanite on the broken instance forces the Nanite permutation for it, which is why the mesh came back.

On the instance that still breaks, open Usage and look at Nanite. If the override box is checked and the flag is off, either tick Nanite or clear the override so it inherits the parent. Then make sure the parent really has Used with Nanite enabled.

5.7 to 5.8 is a plausible trigger. 5.8 is stricter about that usage bit, so an instance that rendered Nanite clusters before can drop to the fallback the next time that material is compiled, which feels like it “worked for months and then stopped” the moment something touched it.

If it is still fallback after the usage flag matches, check the component for Disallow Nanite, and on the static mesh check that Nanite is enabled and look at the fallback triangle percent. Whatever percent that fallback is set to is the mesh you were staring at.