[ODE] Trimesh preprocessing

Joe Ante joe at uti.is
Wed Jun 9 01:44:11 MST 2004


Hi Colin,

It works very well. It seems to cull out like 60% of the seperating axis
tests with the geometry I tested it with. Thanks a lot for contributing the
source code.
Is someone gonna check this into cvs?

Joe Ante
www.otee.dk

> Ok, I got something working so I thought I'd submit a patch for people
> to try out.
> 
> I added three public functions:
> 
> void dGeomTriMeshDataPreprocess(dTriMeshDataID g);
> void dGeomTriMeshDataGetBuffer(dTriMeshDataID g, unsigned char** buf,
> int* bufLen);
> void dGeomTriMeshDataSetBuffer(dTriMeshDataID g, unsigned char* buf);
> 
> Call preprocess on your trimesh data to mark all the edges and vertices
> that can be ignored.  If you want to save that data and reload it later
> (so you don't have to recalculate it at runtime), use the get and set
> buffer functions.  Currently, the data is only used in the
> trimesh-ccylinder collider.  There, I made it so the separating axis
> test only does axis tests against edges and verts that can't be ignored.
> 
> Unless you call the preprocess function, ODE should behave exactly the
> same with these changes.  I've tested it with some of our levels and it
> seems to work correctly.  I'd be interested to hear if it works ok for
> anyone else who wants to try it out.
> 
> Grab the patch here:
> http://open.cyanworlds.com/ode_tri_pre.patch
> 
> Colin
> 
> -----Original Message-----
> From: Colin Bonstead <colin at cyan.com>
> Sent: Fri, 4 Jun 2004 14:13:53 -0700
> To: <ode at q12.org>
> Subject: [ODE] Trimesh preprocessing
> 
> Just so I don't overlap work with anyone, I though I'd mention that I'm
> working on adding trimesh preprocessing, as detailed in the "Fast
> Contact Reduction for Dynamics Simulation" of Game Programming Gems 4.
> Basically it's just marking all the interior and concave edges as
> ignorable (and their vertices).
> 
> It requires 6 extra bytes of memory for each triangle (I'm using 8 for
> now to make it simpler).  It would be fairly easy to make it optional,
> if some people don't want it.  I'm doing this for work, so it should
> hopefully be done soon.  I'll submit a patch when I'm sure it's working
> well.
> 
> Colin Bonstead
> Cyan Worlds, Inc
> 
> 
> 
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
> 
> 
> 
> 
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
> 



More information about the ODE mailing list