[ODE] My Latest Approach to Polyhedron Collision Management

Thomas Harte thomasharte at lycos.co.uk
Wed Nov 27 11:25:02 2002

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

>First a question/suggestion regarding the type of BSP tree - have you<BR>>considered (or are you using) a solid-BSP tree? I would imagine that several<BR>>vertexoverlapping tests would become unnecessary as it is sufficient to find<BR>>a vertex that is in a "solid" (illegal) region of the tree to determine that<BR>>a collision must have occured (thus only requiring single point tests<BR>>against the BSP tree).<BR><BR>I'm no BSP expert, but I have the unfortunate problem (unavoidably so) that some of my <BR>models include two sided polygons - i.e. infinitely flat sections of model. This means that <BR>a vertex may penetrated a model but never be inside the model, and is why I am using <BR>edge through polygon tests to detect when intersection has occurred, and applying <BR>constraints to prevent any interpenetration _before_ it occurs. I believe this means that <BR>solid BSPs wouldn't help me much?<BR><BR>>Regarding the vertices on planes problem (and sending the data down bo
 th BSP<BR>>trees, twice) - won't the one traversal of a BSP tree just yield the<BR>>inverted result of the other BSP traversal? (i.e: case 1: point penetrates<BR>>plane;  case 2: plane is penetrated by point)<BR><BR>If I were sending polygons down either BSP tree, this would be true, but if I send <BR>polygons down then I usually have a worse set of bounding hierarchies, leading to <BR>greater inefficiency that way, and it is also more work to make sure I am not testing my <BR>vertices many times. Therefore I send down just the vertices. In doing so, 1 BSP <BR>traversal only checks for when the vertices of one model are rubbing against the <BR>polygons of the other, and in fact I care about when vertices from either model are <BR>rubbing against polygons from the other, leading me to do two traversals in the current <BR>implementation.<BR><BR>This is all based on 'gut feeling' rather than actual practical investigation and comparison, <BR>and I am open to other opinions so -
  do you think that sending groups of polygons down <BR>the BSP tree, and checking edges/vertices as they are implicitly defined by virtue of the <BR>polygons in question and not worrying too much about doing the same tests multiple <BR>times, or indeed implementing a safeguard against repeated testing, would yield a better <BR>implementation given that I'd save a BSP traversal? My models tend to be 'simple'.<BR><BR>-Thomas<P>------------------------------------------------------
<BR/>BA flight sale now at <A href="http://www.lycos.co.uk">www.lycos.co.uk</A>
<BR/>Boston, 129 rtn. including tax, Wednesday, 1pm