• 3D
  • Objects fall through if physics FPS at default - high FPS helps. Is this normal?

I'm working on some simple scenes with some 3d collisions. My objects are modeled in standard scale. For example I have 1 meter long stick with a diameter of 8 cm. If I use a rigidbody and add a capsule collider of corresponding size, it falls through the floor. I've tried continuous collision detection and so on.

However, if I pump the physics fps to 300+ it seems to work. That is quite high though. Larger objects do not fall through on "low" physics fps like 60. I'm using 3.0 and the bullet physics.

Is this the way this is supposed to work?

If your object is moving very fast, then there is the chance that it could shoot on through a piece of geometry rather than collide with it.

If that's not the case, make sure the collision shape node is after the one that defines the physics body. Also make sure that both bodies are on the same collision layer. If you have both of those things, post a simple project file so we can have a look.

The structure for the moving object is:

rigidbody --collisionshape --meshinstance

However, I'm exporting the scene from Blender. I need to check if the generated static collision objects have this order as well.

They're on the same layer since collisions work fine when pumping up the physics fps. On low physics fps the collisions work if I make the collision shapes larger. For example a capsule of diameter 0.08 does not work but a diameter 0.12 will work.

The objects aren't super slow, but not super fast either.

@Calinou said: A fix for this problem would be to enable Continuous Cd in the RigidBody's properties, but it's currently broken due to a regression and won't have any effect on physics.

This explains quite a lot probably. I am launching the items with some speed (not super fast though) so I checked the continuous collision detection naturally (it didn't have any effect on/off, which makes sens if it is broken). Using high physics fps will in some sense emulate this behavior up to some limit.

How quickly things like this get fixed in Godot? That report is quite old. I kinda like the engine and would like to implement a small game idea with it. However, this is quite a serious bug.

Some further info. The workflow is Blender -> Better Collada Exporter -> .dae file -> Import scene into Godot. It looks like the importer creates this kind of hierarchy for objects with the -col suffix.

Here's the hierarchy:

MeshInstance --StaticBody ----CollisionShape

This is the ground box through which objects fall at times.

@joprot said: How quickly things like this get fixed in Godot? That report is quite old. I kinda like the engine and would like to implement a small game idea with it. However, this is quite a serious bug. The Bullet physics engine is a relatively new addition to Godot and the developer has a bit of a todo list at the moment (such of softbody support and IK).

He's also been fixing bugs, so you can post an issue on the github tracker and emphasize that it's a bug using Bullet (I don't think Godot's original engine will get much attention from this point due to being inferior).

I managed to get things stable enough with 120 fps physics and by switching to empty-style colliders in the Blender scene.

The environment colliders are now empty-boxes with -colonly tag in Blender. They seem to produce more stable results than -col style mesh objects. Might have something to with the collider mesh generation.

Not sure what will happen on low spec machines with that high physics fps though. However, I can get something done now :)