Search found 40 matches

by dog
Tue Jul 15, 2008 2:48 pm
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Alternatives to EPA
Replies: 12
Views: 12531

Re: Alternatives to EPA

1. Once you have a normal and the origin, rerun the code starting from the origin - normal and in the direction of the normal.

2. Project the origin along the collision normal onto the portal triangles of each object to get the correct witness points.
by dog
Sat Jul 12, 2008 4:01 am
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Alternatives to EPA
Replies: 12
Views: 12531

Re: Alternatives to EPA

I strongly recommend trying to implement a version of Minkowski Portal Refinement such as Gary Snethen's XenoCollide. See Game Programming Gems 7 (it has source code!) and elsewhere on this site. It is easier to understand, has far fewer special cases, is numerically more robust (at least my impleme...
by dog
Thu Jan 24, 2008 7:38 pm
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Persistent Manifold question
Replies: 36
Views: 28963

Re: Persistent Manifold question

My ray-check code performs better than my closest point code - this may not be true for other people. Possibly my closest point code is not the world's greatest. :-) I have a single central templated batched ray-cast function that supports all my collision queries (swept collision, line and capsule ...
by dog
Thu Jan 24, 2008 6:38 am
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Persistent Manifold question
Replies: 36
Views: 28963

Re: Persistent Manifold question

Here is what I do, and it works well for me, but it may not be the best or fastest solution: When a point exceeds a lateral threshold, instead of chucking it out I do a very short ray check from the object with the greatest velocity at the contact point against the other object, and if that returns ...
by dog
Tue Oct 30, 2007 6:53 pm
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: GJK Testing
Replies: 3
Views: 5284

Re: GJK Testing

I have a margin of error that is typically 2 cm - so a small sphere for me would have between 5-50cm radius. A box that is 500m*500m*0.5m will cause problems with this - probably even 30mx30mx0.5m would be bad. Classic scale issues really. Some intelligent filtering and decomposition in your build t...
by dog
Mon Oct 29, 2007 6:14 pm
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: GJK Testing
Replies: 3
Views: 5284

Re: GJK Testing

The classic problem case is a very large thin box against a small sphere.

I did exhaustive SAT as comparison to make sure my code worked as desired.
by dog
Fri Aug 17, 2007 8:35 pm
Forum: General Bullet Physics Support and Feedback
Topic: Bullet Ray Cast
Replies: 10
Views: 12972

The code is just a barycentric combination the same way you extract points in standard GJK from the simplex. It is the equivalent of doing a ComputePoints() at the end of normal GJK to get the witness points. We are using the contribution of the world space located object to the Minkowski sum.
by dog
Fri Aug 17, 2007 7:27 pm
Forum: General Bullet Physics Support and Feedback
Topic: Bullet Ray Cast
Replies: 10
Views: 12972

I've only just seen this. You have almost all the information you need, but a couple of modifications are required. When calculating the Minkowski sum: i.e. p <- Support Point on object at origin q <- Support Point on located object return p + q Also store the q in the simplex, not just (p + q). I c...
by dog
Tue Jul 31, 2007 6:54 pm
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Multi SAP
Replies: 22
Views: 45172

Thank you Pierre!

You should also measure performance with large numbers (say 10%) of deletions. Naive array based implementations can exhibit spikes when this typical game behavior occurs.
by dog
Fri May 25, 2007 12:47 am
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: LCP w/friction
Replies: 12
Views: 18330

I'm a little confused by this - I'm not sure if what I do is the same as you, or if there is some new thing I should try out. Currently I set my friction impulse limit with something like: float maxTangentImpulse = frictionConstant * impulseAccumulator; where I use the accumulated impulse from the c...
by dog
Thu May 24, 2007 5:24 am
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: LCP w/friction
Replies: 12
Views: 18330

A simple way to improve the friction model is to make the friction force proportional to the previous frames computed contact normal force (as opposed to just a constant like the demo is if I remember correctly). This makes stacks look much more realistic as objects at the bottom have more friction...
by dog
Mon Mar 19, 2007 5:56 pm
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Using fixed point maths in a physics engine
Replies: 4
Views: 9578

Yeah. Intermediate 128-bit calculations. The first game that used it had 16:32, but I changed it to 32:32 for a space-sim, which apparently needed it. My first physics sim used 8:8 (but that was on a C-64). I'll have to be honest and say that when I did this stuff floating point units were not usual...
by dog
Mon Mar 19, 2007 5:30 pm
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Using fixed point maths in a physics engine
Replies: 4
Views: 9578

I found that 32:32 was adequate for my needs. My engine did not require NaN support, I have no idea about ODE.
by dog
Tue Mar 13, 2007 2:16 am
Forum: Research and development discussion about Collision Detection and Physics Simulation
Topic: Calculating time of impact between point + line (2D)
Replies: 6
Views: 11615

Your assumption that using conservative advancement will be slow due to iterations is not correct in my experience. So don't worry about that. As Dominic Mai points out - it is usually just 4 iterations. Both Gino and Erwin have written very clear papers on how to implement such a scheme. I recommen...