godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.94k stars 20.17k forks source link

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

Open TheConceptBoy opened 3 years ago

TheConceptBoy commented 3 years ago

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

TheConceptBoy commented 2 years ago

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.

Calinou commented 2 years ago

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).

TheConceptBoy commented 2 years ago

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.

Calinou commented 2 years ago

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.

TheConceptBoy commented 2 years ago

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

Leakbang commented 2 years ago

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.

TheConceptBoy commented 2 years ago

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.

Leakbang commented 2 years ago

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.

Leakbang commented 2 years ago

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.