Collision detection libraries
-
Jan Bender
- Posts: 111
- Joined: Fri Sep 08, 2006 1:26 pm
- Location: Germany
- Contact:
Collision detection libraries
Hi,
I am working on two things at the moment:
1. Implementing my impulse-based method on the GPU and
2. on deformable objects
The simulation of joints on the GPU works already (a demo will soon be available on my homepage) but before the collision response can be implemented I need a collision detection that works on the GPU as well.
Also I need a collision detection for deformable objects (not necessarily on the GPU).
Can anybody give me a hint where I can find the required collision detection libraries? I don't want to spend much time on implementing them by my own.
Thanks,
Jan
I am working on two things at the moment:
1. Implementing my impulse-based method on the GPU and
2. on deformable objects
The simulation of joints on the GPU works already (a demo will soon be available on my homepage) but before the collision response can be implemented I need a collision detection that works on the GPU as well.
Also I need a collision detection for deformable objects (not necessarily on the GPU).
Can anybody give me a hint where I can find the required collision detection libraries? I don't want to spend much time on implementing them by my own.
Thanks,
Jan
Re: Collision detection libraries
Hi,
http://www.dtecta.com/
Regards,
Carlo Lanzotti
Never tried it but as i know Gino's Solid CD library can handle deformable objects:Jan Bender wrote:Hi,
I am working on two things at the moment:
1. Implementing my impulse-based method on the GPU and
2. on deformable objects
The simulation of joints on the GPU works already (a demo will soon be available on my homepage) but before the collision response can be implemented I need a collision detection that works on the GPU as well.
Also I need a collision detection for deformable objects (not necessarily on the GPU).
Can anybody give me a hint where I can find the required collision detection libraries? I don't want to spend much time on implementing them by my own.
Thanks,
Jan
http://www.dtecta.com/
Regards,
Carlo Lanzotti
-
Jan Bender
- Posts: 111
- Joined: Fri Sep 08, 2006 1:26 pm
- Location: Germany
- Contact:
I already use SOLID for rigid bodies but I wanted to change since I want to publish my project as open source and SOLID is not free for commercial applications.Never tried it but as i know Gino's Solid CD library can handle deformable objects:
Do you know if Opcode returns the whole contact region (all contact points) between two bodies and a contact normal?Opcode handles deformable objects.
Thanks,
Jan
- Erwin Coumans
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA
- Contact:
It would be great if we can collaborate a bit more, Jan.
Bullet can do deformable too, as soon as we add the 'refit' to the optimized BVH structure. It also has btTetrahedronShape support, which can be deformed too, by changing its vertices. So we can just add a new structure 'btDeformableTetrahedralMesh', customized to your needs, using the deformable (refit) AABB tree.
Can you describe the deformable shape properties? Is it a tetrahedral mesh, with mostly fixed topology (except when it breaks)?
Thanks,
Erwin
Bullet can do deformable too, as soon as we add the 'refit' to the optimized BVH structure. It also has btTetrahedronShape support, which can be deformed too, by changing its vertices. So we can just add a new structure 'btDeformableTetrahedralMesh', customized to your needs, using the deformable (refit) AABB tree.
Can you describe the deformable shape properties? Is it a tetrahedral mesh, with mostly fixed topology (except when it breaks)?
Thanks,
Erwin
-
Jan Bender
- Posts: 111
- Joined: Fri Sep 08, 2006 1:26 pm
- Location: Germany
- Contact:
For deformable bodies I started with some simple cloth simulations as you can see on my homepage: http://www.impulse-based.de. For this I need a collision detection which can handle deformable triangle meshes. I also want to simulate tetrahedral mesh bodies. If your collision detection can handle this then it is exactly what I need.Bullet can do deformable too, as soon as we add the 'refit' to the optimized BVH structure. It also has btTetrahedronShape support, which can be deformed too, by changing its vertices. So we can just add a new structure 'btDeformableTetrahedralMesh', customized to your needs, using the deformable (refit) AABB tree.
Can you describe the deformable shape properties? Is it a tetrahedral mesh, with mostly fixed topology (except when it breaks)?
Jan
With a refit operation, same as Solid. Only faster since the trees have less nodes to refit.Pierre, how does opcode handle deformable objects? And what does deformable mean for opcode?
"Deformable" means you can update the vertices, but not the connectivity. Works for vanilla cloth. Doesn't work for tearable cloth.
- Pierre
No, you're right. You're just confused about CD libs. I compared Opcode to Solid, not to Rapid:Umm I was under the impression that an AABB struture was bound to have equal or more nodes than an OBB.
- Rapid uses OBB trees, and doesn't support deformable meshes
- Solid uses AABB trees, and does support them.
- Opcode is like Solid, but with less nodes in the trees.
- Pierre
- Erwin Coumans
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA
- Contact:
And Bullet is like Solid, but with a liberal Zlib license that allows commercial use.
Just like Opcode and Solid, Bullet also includes AABB trees, with optional stackless tree traversals, which should help performance on new platforms (although public version Bullet hasn't been optimized much yet for either performance/memory usage, the PS3 version has some optimizations).
As far as I know, public Opcode doesn't support convex polyhedra, which I think is an important feature for rigid body dynamics. Also, since Pierre joined Ageia/Novodex there isn't active development to improve the public version I suppose.
Can you correct me if I'm wrong, Pierre?
If we collaborate, we can enhance Bullet to support refit, and other necessary enhancements for deformable cloth/tetrahedral meshes.
Just like Opcode and Solid, Bullet also includes AABB trees, with optional stackless tree traversals, which should help performance on new platforms (although public version Bullet hasn't been optimized much yet for either performance/memory usage, the PS3 version has some optimizations).
As far as I know, public Opcode doesn't support convex polyhedra, which I think is an important feature for rigid body dynamics. Also, since Pierre joined Ageia/Novodex there isn't active development to improve the public version I suppose.
Can you correct me if I'm wrong, Pierre?
If we collaborate, we can enhance Bullet to support refit, and other necessary enhancements for deformable cloth/tetrahedral meshes.
Opcode only deals with arbitrary triangle meshes indeed. It doesn't contain convex-related algorithms, neither GJK nor SAT.As far as I know, public Opcode doesn't support convex polyhedra, which I think is an important feature for rigid body dynamics.
Yep, I don't think I'm allowed to improve the public version. Releases stopped the day I joined Novodex.Also, since Pierre joined Ageia/Novodex there isn't active development to improve the public version I suppose.
- Pierre