When you enable the physics substepping, if you run the console command p.Chaos.Solver.DebugDrawSpatialAccelerationStructure 1, you can see how does not follow the physical object. The user that reported the case has attached a repro project where you can test this issue immediately.
The issue happens mainly when the application runs at 30-40 fps or less. Due to the process of substepping altering physics deltatime, there must be an error that makes SpatialAccelerationStructure to break.
I've been debugging and if it helps, it looks like KinematicsParticles of PBDRigidsSOAs.h is setting the position wrong.
Lastly, if you force the application to run at 2 frames, you can see the issue more clearly. The Spatial Structure is rendered 1 position to the final one. If substepping calculates 6 possible positions, the physical cube moves to the 6th, while the Spatial Structure stays at the 5th.
Use the repro SpatialAcceleration project or create a new one:
1- Go to ProjectSettings/Physics/Framerate and enable Substepping
2- Create a Level and with a Cube.
3- In the Level Blueprint, execute the following commands:
How does TextureRenderTarget2D get TArray<uint8> type data?
How do I set a material as a post-processing material?
How to delete some elements correctly when deleting an array loop?
Why does the REMOVE method of map container remove elements have memory leaks?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
What is the difference between Camera and CineCamera?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-209877 in the post.
4 |
Component | UE - Simulation - Physics |
---|---|
Affects Versions | 5.3.2 |
Target Fix | 5.6 |
Created | Mar 15, 2024 |
---|---|
Updated | Nov 1, 2024 |