Hello,
Does anyone know why perpetually moving objects like foliage stutters/jerks when they are placed far away (toward the world bounds)? How can I override this behavior?
Hello,
Does anyone know why perpetually moving objects like foliage stutters/jerks when they are placed far away (toward the world bounds)? How can I override this behavior?
It could either be something wrong with how the world position offset is set up, or maybe some floating point precision issue. The former would require troubleshooting the wind function on your material, the latter would require using something like higher precision world coordinates or origin shifting.
When you get a chance, maybe you can try to see if you can reproduce this, because I tried it in multiple worlds with multiple meshes and still got the same result.
So it seems to be a feature. Unless I’m disproven.
I have not been able to replicate this. Foliage are instanced static meshes, and there are specific considerations when making a material that uses WPO for instances. For example, the actor’s local origin is not the per instance origin, which can cause some material logic that was designed around distance from origin (like wind getting stronger the farther from the base of the tree perhaps) to misbehave unless this is accounted for.
Instead of using local to world space transformations, we need to use instance/particle space to world space transformation.
Unhook the WPO, and replace is with something that is not positionally dependent - like simple sine wave uniformly applied across the whole mesh - and you should see the vertex positions displacing the same as they would at the origin.
If even this is still different, then it is likely a floating point precision error, which is a well understood topic in game engines with multiple options to fix as I’ve mentioned. Although I think this is unlikely to be the issue, as I had no issues with it millions of units away from the origin.
If the displacement is the same in both places (like it was for me), then we can be confident that something in the material logic has not been set up to adequately handle being applied to instances. I believe this is the more likely explanation.
I’ll get back to you.
Trying/researching now…
Okay, you’re absolutely correct about one or more of those things.
I didn’t make the functions myself, and even though I can, I’m not about to spend a day learning how each node in the function works.
I’ll place the assets closer to the world origin.
Worse things have occured.
I appreciate the help and insight. Very informative.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.