godotengine/godot

[Bullet] Most properties in 6DOFJoint do nothing. Also if two 6DOF joints are fixed to one rigid body, only one affects it.

TheConceptBoy opened this issue · 9 comments

Godot version

3.3.2

System information

Win 10k, ATI RX570

Issue description

Issue 1: Changing most of the properties in the 6DOF joint yields no change in behavior if the engine is set to Bullet / DEFAULT. Joint works fine if Godot Physics is used.

Issue 2: When two 6DOF joints a attached to the same rigid body, only one of the (First one to be attached) is affecting the rigid body. Issues goes away if Godot Physics is used.

Bug Evidence:
https://youtu.be/GsU4cX6bv8s

Steps to reproduce

Issue 1:
Set physics engine to Bullet:
Set a rigid body
attach two 6DOF joints to the body.
Only one of them will affect the body.

Issue 2:
Set physics engine to Bullet:
Play around with 6DOF joint properties.

Minimal reproduction project

No response

So is this going to be worked on?
So far the solution to fixing this engine feature problem is to not use the engine feature in the first place by using Godot physics. Are these properties mentioned on the roadmap anywhere to be implemented by any chance? I'm on 3.3.3

I mean Godot physics works.... passably. I get meshes glitching through the ground when they fall and my world scaling is pretty adequate. With bullet physics, the rigid bodies interact with the world perfectly and my game performance (in VR) goes from 30fps to 70fps. That's a pretty substantial improvement over Godot Physics.

The fact that none of the 5DOF joint settings actually do anything makes all that performance gain unobtainable.

So is this going to be worked on?

This may be fixed incindentally in 4.0, but I don't think anyone has started looking into it yet.

Also, note that Bullet will be removed in 4.0 in favor of GodotPhysics becoming the new default physics engine (as it was before Godot 3.0).

Also, note that Bullet will be removed in 4.0 in favor of GodotPhysics becoming the new default physics engine (as it was before Godot 3.0).

Is it now? that's surprising. Bullet seems to perform way better than Godot Physics in my case at least. So that's disappointing.

Is it now? that's surprising. Bullet seems to perform way better than Godot Physics in my case at least. So that's disappointing.

GodotPhysics is receiving a lot of changes to make it faster and more stable. This will make Bullet obsolete for most use cases.

I see. So this then my only hope lies on whether or not my project in 3.3 is compatible with godot 4.

These two issues still persist in 3.4 Stable. However, when a 6DOF joint is used with another joint type like a Hinge joint, then both of them affect the attached rigidbodies. @TheConceptBoy you may be able to use this to circumvent your issue.

I've been told that Bullet is being removed from Godot so I double we're gonna see fixes for this. :( It's sad as Bullet physics has such a performance boost over Godot physics in my projects. but perhaps it's because it was not fully implemented.

Actually I was just searching for why bullet is planned to be removed. It is such a powerful and established physics library that makes it really difficult to compete with. I wonder how good the new physics library is that the devs want to totally replace bullet.

These two issues still persist in 3.4 Stable. However, when a 6DOF joint is used with another joint type like a Hinge joint, then both of them affect the attached rigidbodies. @TheConceptBoy you may be able to use this to circumvent your issue.

After more intensive tests, I can verify that all of the properties in 6DOF joint work. My bad. It turned out that Linear limit was overpowering all the other effects.