GDC 2005
I’ve posted my slides and paper from GDC 2005. If you have any questions about his paper leave a comment and I’ll try to respond for everyone’s benefit.
I’ve posted my slides and paper from GDC 2005. If you have any questions about his paper leave a comment and I’ll try to respond for everyone’s benefit.
March 24th, 2005 at 10:46 am
If I remember right.. The GDC organizers put your talk and David Wu’s talk at the same time. What was up with that?
March 24th, 2005 at 2:48 pm
Yeah, my slot was a poster session so I don’t think they bothered to sort it against the lectures.
I’m hoping that next year I can do a regular lecture. I’ll need a more inviting title than ‘Iterative Dynamics with Temporal Coherance.’ Hmm, maybe ‘Fast, Stable Physics: No Math Required.’
March 29th, 2005 at 10:41 pm
Hi Erin, it was good seeing you at GDC (and you too Billy). Yeah, next time I’m definitely going for the lighthearted title myself. “Numerical Robustness for Geometric Calculations” clearly competes with your title for the top spot in the category of “most dry title.” In hindsight, I don’t know what I was thinking; I’m amazed people actually showed up at my presentation!
Perhaps you could paraphrase Ballmer and call it “Dynamics, dynamics, dynamics!” and do a little monkey dance during the presentation? That would probably be popular!
March 30th, 2005 at 11:04 pm
Hello Erin,
just glanced over your paper and your slides for GDC2005.
Why did you decide to use a contact-point-based method? Most physics simulators do, but I’d like to hear your opinion.
Have you concerned yourself with scene management? I mean, are you testing all the objects for intersection every timestep, or are you using simplifaction methods like Axis-Aligned-Bounding-Boxes for approximation?
Good work by the way, haven’t tried it yet, but it looks promising. And yes, you should definitely choose a less arrogant and boring title for a games developers conference
March 31st, 2005 at 9:43 am
Hi Christer and Harald,
It was my first GDC so I didn’t know what to expect in terms of audience. I’m learning …
My current engine handles contact manifolds. This is essentially the same as contact points, except that friction is simplified. Is there some other method?
For scene management I use a sweep and prune structure as described in Gino van den Bergen’s book: Collision Detection in Interactive 3D Environments. I highly recommend this book, along with Christer’s book: Real-Time Collision Detection.
April 4th, 2005 at 4:59 am
Hi Erin,
thanks for the hint about Christer’s book. I’ve read Gino van den Bergen’s book about collision detection and his earlier papers.
I’m using SOLID for a project, and I think it’s about as fast as collision detection can be with the method he uses. And it’s well-designed, from my point of view.
I don’t know whether I’m using the correct terminology when talking about contact-point methods. Here in my words: We use only the penetration depth vector for force computation. You and other engines (like ODE) use several contact points (I guess that’s what you call contact-point method).
There are volume-based algorithms. I think Springhead (springhead.info) uses such a method.
May 29th, 2005 at 8:05 am
Erin, I liked your GDC presentation.
Harald, Solid 3.5 is a nice collision library indeed. You can use just 1 contact point, but keeping a persistent set of points can be useful for stable stacking.
I implemented a couple of continuous collision detection methods. Both Redon’s algebraic version, and iterative methods (like Gino’s GDC paper, but extended with angular motion). The iterative method uses GJK for the closest points. It has the Voronoi Simplex Solver as described in Christer Ericsons book.
See www.erwincoumans.com/p/ccd_demo.zip
Cheers,
Erwin
May 29th, 2005 at 9:23 pm
Harald, I have used a volumetric approach in the past for a penalty method. I’m not sure if a volumetric approach would help with a contraint method like I’m using now.
Erwin, your work seems interesting. Is there any chance you’ll write something on it? I’m not too concerned with continuous collision detection now, but I am interested in generating a contact manifold for general convex-convex collision. Does your persistent point set approach require a small time step? Are you just persisting polyhedra feature pairs?
Here’s a post of mine from the ODE mailing list.
==================================
So how should one go about doing convex-convex collision in ODE?
Here’s my conjecture:
1. You need the separating axis of minimum depth, just like the box-box case. Once you have this you can just do 2d poly clipping.
2. The trick is to adapt GJK to quickly find the minimum separating axis. I have some ideas about this, but nothing I’ve tested. One approach might be to shrink overlapping polyhedrons until they no longer overlap, and then find the closest features. Now use these closest features as the starting point for a local search for the minimum separating axis in the full size polyhedrons.
June 1st, 2005 at 5:14 am
The CcdLib containt 2 CCD methods, GJK and 2 Persistent Manifold methods. I assume you are interested in PersistentManifold in combination with GJK. Please download the updated version
http://www.erwincoumans.com/p/ccd_demo_2005june1.zip
and have a look at PersistentManifold.cpp
Indeed the persistent manifold is a generic way of maintaining contact points between convex-convex. Basic idea is to add contact points to a cache (of size 4). Refresh the cache every frame, and throw away points that are exceeding a certain distance. Detect a cache-hit by distance.
When the cache is full, strategy is to keep point with biggest penetration (Adam Moravanskzy’s paper), and take 3 other points that have the biggest area. Instead of Adam’s aabb, I just calculate all 4 combinations of points, and throw away the remaining point of the combination that has biggest area.
It works fine with most time-steps, as long as the collision detector provides closest point/distance.
I’m preparing to release the ccd library, and consider posting it on the ODE list pretty soon.