[ODE] Trimesh Temporal Coherence Patches
Adam D. Moss
adam at gimp.org
Sun Dec 7 18:12:23 MST 2003
Vadim Macagon wrote:
> void dGeomTriMeshEnableTC(dGeomID g, int geomClass, int enable);
> int dGeomTriMeshIsTCEnabled(dGeomID g, int geomClass);
>
> These functions can be used to enable/disable the use of temporal coherence
> during tri-mesh collision checks. Temporal coherence can be enabled/disabled
> per tri-mesh instance/geom class pair, currently it works for spheres and
> boxes.
Committed, thanks!
However, the existing TC implementation seems subtly broken to me,
not simply from a minor efficiently sense but rather by keying a
cache by a pointer, where pointers are prone to re-use (especially
by objects of the same size/type) and this is hard to detect.
For this reason I'll probably do one of the following soon:
* turn TC off by default, users can use dGeomTriMeshEnableTC()
* turn TC off *and* hide the dGeomTriMeshEnableTC() prototype.
It'll probably be the latter until someone can either show
where the cached data is re-validated as correct by the code that
uses it, or can submit a fix. My concern is that the subtle,
intermittant and hard-to-reproduce wrongness that might occur due
to this minor foible of the TC implementation could cause ODE's
users a lot of pain to pinpoint. I'd be happier knowing that I
was wrong or that there was a fix in-hand.
Thanks,
--Adam
--
Adam D. Moss . ,,^^ adam at gimp.org http://www.foxbox.org/ co:3
Consume Less, Live More
More information about the ODE
mailing list