A general question regarding Bullet

bssrdf
Posts: 4
Joined: Mon Nov 23, 2009 8:07 pm

A general question regarding Bullet

Post by bssrdf »

Hi all,

I am new here. Just a few questions regarding collision and contact handling in Bullet.

1. Are collision and contact handled distinctly in Bullet? For example, first collision processing and then contact?

2. I assume collision modeling is based on impulse, what about contacts? Is it contact force/constraint based? Or impulse-based as in collision step but with a zero restitution coefficient?

Thanks,

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

Re: A general question regarding Bullet

Post by Erwin Coumans »

bssrdf wrote:Hi all,

I am new here. Just a few questions regarding collision and contact handling in Bullet.

1. Are collision and contact handled distinctly in Bullet? For example, first collision processing and then contact?
What do you mean by 'collision' and 'contact' exactly?
2. I assume collision modeling is based on impulse, what about contacts? Is it contact force/constraint based? Or impulse-based as in collision step but with a zero restitution coefficient?
Bullet uses a constraint based approach to solve all constraints. It uses an iterative LCP constraint solver to solve those constraints known as Projected Gauss Seidel (or sequential impulse). This is not the same as Brian Mirtich's 'impulse based' approach.

For each contact point, Bullet solves velocity constraints and positional (penetration) constraints. Positional constraints can be solved using Baumgarte stabilization (introducing a velocity error) or position based (effectively solving a separate positional LCP solve, also referred to as 'split impulse' in these forums.

Hope this helps,
Erwin
bssrdf
Posts: 4
Joined: Mon Nov 23, 2009 8:07 pm

Re: A general question regarding Bullet

Post by bssrdf »

Erwin Coumans wrote:
bssrdf wrote:Hi all,

I am new here. Just a few questions regarding collision and contact handling in Bullet.

1. Are collision and contact handled distinctly in Bullet? For example, first collision processing and then contact?
What do you mean by 'collision' and 'contact' exactly?
2. I assume collision modeling is based on impulse, what about contacts? Is it contact force/constraint based? Or impulse-based as in collision step but with a zero restitution coefficient?
Bullet uses a constraint based approach to solve all constraints. It uses an iterative LCP constraint solver to solve those constraints known as Projected Gauss Seidel (or sequential impulse). This is not the same as Brian Mirtich's 'impulse based' approach.

For each contact point, Bullet solves velocity constraints and positional (penetration) constraints. Positional constraints can be solved using Baumgarte stabilization (introducing a velocity error) or position based (effectively solving a separate positional LCP solve, also referred to as 'split impulse' in these forums.

Hope this helps,
Erwin
By 'collision' and 'contact', I mean colliding contact and resting contact, respectively.
I am interested in implementing an impulse-based approach for resting contacts in Bullet. I am wondering if it is easy to do so. Is collision cleanly separated with contact handling in Bullet?