[ODE] strange thing

Gilles Marion gilles.marion at free.fr
Mon Feb 18 06:46:01 2002


It may be due to D3D changing the internal precision of the FPU.
Try setting the D3DCREATE_FPU_PRESERVE  flag in your call to CreateDevice().
If it works, remove it and handle the precision change yourself.
Look at the _controlfp function in MSVC docs.

PseudoCode :
SavePrecisionSetting()
SetHighPrecision()
Do your Physics/Collision work
SwitchBackToSavedPrecision()
RenderWithD3D()

------------------
Gilles Marion

----- Original Message ----- 
From: "pro" <orp@uni.de>
To: <ode@q12.org>
Sent: Monday, February 18, 2002 1:59 PM
Subject: [ODE] strange thing


> i want to use ODE with directX 8, but there is a problem: everything works
> fine unless i start the dx subsystem.
> 
> if i call
> d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, window,
> D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3ddevice);
> 
> to create a D3D device ode calculates the first steps correct, but the
> collision response is wrong (the position of a box, reflected by a plane is
> 1.#QNAN0 for x y and z after a collision of box and plane)
> 
> if i comment the createdevice call out, everything works fine, the collision
> response seems to be ok.
> 
> there are no overlapping memory blocks or other effects in my code.
> 
> what can i do?
> 
> 
> 
> thanks
> 
> 
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode
> 
>