Some numerical none robust in the btSubsimplexConvexCast

fishboy82
Posts: 91
Joined: Wed Jun 10, 2009 4:01 am

Some numerical none robust in the btSubsimplexConvexCast

Post by fishboy82 »

Hi:
I find there is some numerical none robust in the btSubsimplexConvexCast,
A case is for a btcylinershapex with ext(0.256,0.705,0.705) with a box ext(350 ,350, 50)
and with some start transform the 2 shapes have a dist about 0.18 but the btSubsimplexConvexCast always report VdotW < 0 thus never advance the lambda . I trace the function and find it is because some numericall error . Like follows ,
the closet point v is (0.00005,0.00004,1.3) and w is (-359.71124 ,-356.18442 ,0.18650293)
and vDotw always return < 0, but the v in every iterator remains the same and so is w. This means we can not get any closer ,so v is the most shortest dist in the sum of Minkwoski to the origin, this case in the GJK Detector will be deal with alone, but not deal with in the btSubsimplexConvexCast . So should we also deal this situation in the btSubsimplexConvexCast ?
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Some numerical none robust in the btSubsimplexConvexCast

Post by Erwin Coumans »

Do you help creating a basic reproduction case, using one of the demos?

It would help fixing the issue,
Thanks for the report!
Erwin
fishboy82
Posts: 91
Joined: Wed Jun 10, 2009 4:01 am

Re: Some numerical none robust in the btSubsimplexConvexCast

Post by fishboy82 »

Hi Erwin:
I will notify you when I finish the reproduction demo
fishboy82
Posts: 91
Joined: Wed Jun 10, 2009 4:01 am

Re: Some numerical none robust in the btSubsimplexConvexCast

Post by fishboy82 »

Hi Erwin:
I finally found it's not a bug . It is because I was using Directx ,and when I create the directx device I forget to use the D3DCREATE_FPU_PRESERVE Tag ,with out this tag the directx change the FPU 's precise mode to 24-bit, so this cause a lot accmulate error of float calculate in the convex cast function. When I use D3DCREATE_FPU_PRESERVE all is ok,sorry for my wrong report.
sparkprime
Posts: 508
Joined: Fri May 30, 2008 2:51 am
Location: Ossining, New York

Re: Some numerical none robust in the btSubsimplexConvexCast

Post by sparkprime »

This is a particularly irritating feature of d3d that is pretty much useless for improving performance