General questions about bullet

beegee
Posts: 4
Joined: Tue Aug 28, 2007 3:04 pm

General questions about bullet

Post by beegee »

Hi, there! I'm using Bullet XNA for improving the vehicle simulation part and creating some more general demos. ( that means to add vehicle support to xna)
I'm interesting in Bullet, how stuff is done. So here I got some developer related questions:

1. Why have you to specifiy maxProxies / worldMin / worldMax for the AxisSweep class ?
2. For what is the contactSolverinfo(solverBody) class is used ?
3. What tasks do the SimulationIsland and Union class ?
4. What tasks does the Jacobian class ?
5. I'm playing around with the constraint demo of XNA and was confused that the two bodys connected with a HingeConstraint have no friction. You've to apply one time a force to the body and the body rotates endless about itself. Is this a feature or a bug?
6. For what is the DisableDeactivation property of RigidBody used?


Thanks.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: General questions about bullet

Post by Erwin Coumans »

beegee wrote:Hi, there! I'm using Bullet XNA for improving the vehicle simulation part and creating some more general demos. ( that means to add vehicle support to xna)
I'm interesting in Bullet, how stuff is done. So here I got some developer related questions:

1. Why have you to specifiy maxProxies / worldMin / worldMax for the AxisSweep class ?
The AxisSweep sweep and prune uses quantized integer coordinates, that is why we need worldMin/worldMax. Avoid making the worldMin/Max too large, it will cost performance (bounding volumes will fit better with tighter values). To avoid dynamic memory allocations we use fixed arrays, hence the maxProcies.
2. For what is the contactSolverinfo(solverBody) class is used ?
3. What tasks do the SimulationIsland and Union class ?
simulation island and union (find) is used to find (approximate) connected rigid bodies. This is used to activate/deactivate groups (islands) of objects.
4. What tasks does the Jacobian class ?
Jacobian class is used by the constraint solver, it represents the effect of an applied impulse on the constraint error.
5. I'm playing around with the constraint demo of XNA and was confused that the two bodys connected with a HingeConstraint have no friction. You've to apply one time a force to the body and the body rotates endless about itself. Is this a feature or a bug?
Could be XNA related, please use the XNA feedback mailing list.
6. For what is the DisableDeactivation property of RigidBody used?
By default, all rigid bodies will deactivate(sleep) after a certain amount of inactivity (based on velocity threshold). For certain objects you don't want deactivation, such as vehicles or main player character. Use DisableDeactivation for this.

Hope this helps,
Erwin
beegee
Posts: 4
Joined: Tue Aug 28, 2007 3:04 pm

Re: General questions about bullet

Post by beegee »

Much thanks!! :D
bone
Posts: 231
Joined: Tue Feb 20, 2007 4:56 pm

Re: General questions about bullet

Post by bone »

Erwin Coumans wrote:By default, all rigid bodies will deactivate(sleep) after a certain amount of inactivity (based on velocity threshold). For certain objects you don't want deactivation, such as vehicles or main player character. Use DisableDeactivation for this.
Erwin,

Have you ever considered checking acceleration (and/or forces from last frame) in addition to velocity before deactivating objects? An example of how this might help is throwing an object up in a low-gravity environment. It may have very little velocity for one or more frames at the peak of its trajectory, but we know that the constant acceleration is going to eventually get it moving again. I also simply think it's an easier check than counting the number of frames that velocity is below a threshold.

Or is acceleration data too jittery?

-bone