-
What are the plausible stability implications of going beyond the stated max speed limit of 500m/s with bigger objects than 10m? Is this a hard limit beyond which the stability is awful or is it something that just isn't that well tested? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
These numbers can probably be pushed a bit before things really break. Especially if you go larger rather than smaller. There are various 'tolerances' in the code which have been tuned for the specified ranges. Some tolerances have been exposed (e.g. I think if you push beyond the limits on the upper bounds, you will find that you can go quite a bit further before things really start breaking down. E.g. a 100m object will probably work fine, it's just not something I really test for. On the lower bound, you'll run into issues sooner because the tolerances start to become really big for the object. E.g. the default 'penetration slop' of 2cm will be really noticeable if your objects are in the order of a cm. Under the influence of gravity a cm sized object has a very large chance of tunneling through geometry in a single time step. How big are you thinking about making your objects? And how fast do you want them to go? Feel free to add examples where things go wrong to this discussion. If they seem fixable, I'll look into it, but there are no guarantees. The main thing I don't want is that people start using the engine with their units set to cm, since that immediately makes all numbers a factor 100 bigger than what the tolerances were designed for. |
Beta Was this translation helpful? Give feedback.
-
I think you can safely remove these constraints. Enabling CCD I've gotten objects ranging from 1cm^3 to without a problem colliding at 1km/s, it only stopped working at 2km/s... objects at 1.2km^2 had no problems colliding at 5km/s... |
Beta Was this translation helpful? Give feedback.
These numbers can probably be pushed a bit before things really break. Especially if you go larger rather than smaller. There are various 'tolerances' in the code which have been tuned for the specified ranges. Some tolerances have been exposed (e.g.
CollideSettingsBase::mCollisionTolerance
orPhysicsSettings::mPenetrationSlop
), but quite a few haven't been. E.g. search for FLT_EPSILON, 1.0e-6 or 1.0e-12 as they are quite commonly used. Exposing all of these constants in a meaningful way to the user is very difficult as they require expert knowledge to tune them.I think if you push beyond the limits on the upper bounds, you will find that you can go quite a bit further before things real…