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 ?
Some numerical none robust in the btSubsimplexConvexCast
-
- Posts: 91
- Joined: Wed Jun 10, 2009 4:01 am
-
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA
Re: Some numerical none robust in the btSubsimplexConvexCast
Do you help creating a basic reproduction case, using one of the demos?
It would help fixing the issue,
Thanks for the report!
Erwin
It would help fixing the issue,
Thanks for the report!
Erwin
-
- Posts: 91
- Joined: Wed Jun 10, 2009 4:01 am
Re: Some numerical none robust in the btSubsimplexConvexCast
Hi Erwin:
I will notify you when I finish the reproduction demo
I will notify you when I finish the reproduction demo
-
- Posts: 91
- Joined: Wed Jun 10, 2009 4:01 am
Re: Some numerical none robust in the btSubsimplexConvexCast
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.
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.
-
- Posts: 508
- Joined: Fri May 30, 2008 2:51 am
- Location: Ossining, New York
Re: Some numerical none robust in the btSubsimplexConvexCast
This is a particularly irritating feature of d3d that is pretty much useless for improving performance