[ODE] new ODE 0.8 heightfield seems working wrong

Dmitry Medvedev pegasi at inbox.ru
Fri Feb 2 08:14:00 MST 2007


 It seems that patch #1583115 has changed internal heightfield.cpp code completely. A new algorithm for a the hightfield is used. I think the best way is to negotiate with person who committed this patch - hidden_asbestos. Does anybody know his e-mail or is it possible to redirect this topic to him?
 


-----Original Message-----
From: Bram Stolk <bram at sara.nl>
To: Dmitry Medvedev <pegasi at inbox.ru>
Date: Wed, 31 Jan 2007 20:35:21 +0100
Subject: Re: [ODE] new ODE 0.8 heightfield seems working wrong

> 
> This could be bad news.
> This is in the history of heightfield.cpp:
> 
> r1145 | hidden_asbestos | 2007-01-11 14:54:15 +0100 (Thu, 11 Jan 2007) |
> 1 line
> 
> Added changes from patch #1583115 by Tuan Kuranes. Performance in
> test_heightfield, especially for meshes is a superb improvement!
> 
> 
> It could be that revision 1145 introduced a bug.
> It looks like a optimization was added that could change behavior?
> 
> You may want to take a look at the patch 1583115 and see if it
> can be easily disabled with an ifdef or something.
> 
>   Bram
> 
> 
> On Wed, 2007-01-31 at 19:25 +0300, Dmitry Medvedev wrote:
> >   Hello, everybody.
> > 
> >  Just change ODE from 0.7 to 0.8-rc1.
> > 
> >  I have a scrolling screen in XoY plane with a moving truck and use dHeightfield to represent a landscape. 
> >   Truck's wheels are falling under the heightfiled now... but I didn't change anything in my code.
> >  In a new heightfield source code all changes are only in private functions and data, all interface functions like dGeomHeightfieldDataBuildSingle() have the same code like in 0.7. So what could happened?
> >  (If to build ODE 0.8 and copy to its sources heightfield.cpp, heightfield.h from 0.7 aeverything works)
> > 
> >   Here is a part of a creating heightfield code:
> > 
> >       mHeightMapDataID = dGeomHeightfieldDataCreate();
> > 
> >     // configure a heightfield
> >     dGeomHeightfieldDataBuildSingle(mHeightMapDataID,
> >         mHeightMapSampleData, 0, // based on this instance of data, no duplication
> >         worldCorner2[0]-worldCorner1[0], // total x dimension
> >         worldCorner2[2]-worldCorner1[2], // total z dimensions
> >         mHeightMapSampleCount, 2, // cell count on x,z
> >         REAL( 1.0 ), REAL( 0.0 ), // scale, offset
> >         REAL( 0.1 ), 0); // // thickness, wrap
> > 
> >               // set finite AABB
> >     dGeomHeightfieldDataSetBounds( mHeightMapDataID, worldCorner1[1], worldCorner2[1] );
> > 
> >     // the height field is movable, y is the height, we position it around z=0 axis
> >     mHeightFieldGeom = dCreateHeightfield( mGroundSpace, mHeightMapDataID, 1);
> > 
> >     My system has Y axis increasing from top to bottom, so rotate heightfield geometry 180 degrees about Z axis:
> > 
> >     dMatrix3 R;
> >     dRSetIdentity( R );
> >     dRFromAxisAndAngle( R, 0, 0, 1, DEGTORAD * 180 );
> >     dGeomSetRotation( mHeightFieldGeom, R );
> > 
> >     Place geometry in the center of world's X axis and at the bottom of it. 
> >     dVector3 posHeightMap;
> >     posHeightMap[0]= (worldCorner1[0]+worldCorner2[0])/2.0f;
> >     posHeightMap[1]= worldCorner2[1]; // bottom of world
> >     posHeightMap[2]= 0.0f;
> >     dGeomSetPosition( mHeightFieldGeom, posHeightMap[0], posHeightMap[1], posHeightMap[2] );
> > 
> > 
> >  So why mu truck begun to fall in a heightfield?
> >   
> > _______________________________________________
> > ODE mailing list
> > ODE at ode.org
> > http://mooshika.org/mailman/listinfo/ode
> 


More information about the ODE mailing list