[5.1] Instanced Static Meshes jitter when moving the camera

I’m having trouble with ISM. I’m using a simple 4 vertex plane as the mesh. The instances are creating curved lines. I noticed that when I zoom in and move the camera, the instances shift their position slightly. I’ve queried the ISM component for the transforms of 3 of the instances and placed red spheres where they should be, as shown in the VIDEO. These transforms don’t seem to change during runtime.
I’ve been scratching my head for a few days, searching through the Internet but couldn’t find any similar issue. I tried everything I could think of.
Last week I’ve been searching for a fix for another issue I’ve been having with ISM, this time the shapes were getting distorted. It got fixed once I updated from 5.0.3 to 5.1. This issue unfortunately persists.

Is the ISM of very large scale or at very distant coordinates from the world center (0,0,0)? If so it will cause floating point errors resulting in jitter.

1 Like

Actually yes, it is very distant. Haven’t thought of that. Do you know a workaround for this issue? If it was already reported somewhere, could you post a link please?

Just tested it out. Indeed, the closer to the center the smaller the jitter seems to get.

Not many ways to fix it. It’s a math problem, processors just aren’t that precise at very large floating point math at larger scale.

Ue5 supports larger worlds through world partitioning. You can also try enabling world origin rebase. (I think its just a checkbix in project settings and in world settings now)

1 Like

I’ve tried enabling the rebasing in settings and modifying it manually. It interferes with async ISM focused generation I have in my project. It seems pretty straight forward, so unless I’m doing something horribly wrong it won’t work for me, unfortunately.
Thank you for the the help nevertheless! I somehow haven’t encountered these issues previously.

I found that setting the ISMC’s location resolves the issue. At least until the instances go outside the position limit (what’s the limit I’m not sure yet, working on that currently).

For my last update I’ll say that I’ve settled for 1kk unit limit from the ISMC’s location. I’d say it’s ideal with something like 500k units, but it isn’t worth in my case. Since I divide the instances between multiple ISMCs, at some point it starts affecting the frame time, given I generate milions of them. Anyway, with 1kk limit, the jitter is not noticeable at the camera distance I use - min 5k units. You’d have to zoom in very closely to barely see it.
Thanks for the suggestion again!

You could also just reduce the scale if the whole project, as in object scale (maybe easier if a lot of stuff id procedural).

Visually things would stay the same but coorsinates xould be cut by half or a tenth.

I was already using 1:10k scale, but I bumped it up to 1:100k and managed to resolve all of the issues I was afraid off. My main fear was loss of precision that I think I was experiencing back in UE4 when testing this scale. Perhaps UE5 moving to double precision helped with that. Thanks for the suggestion!