Dear group,

while trying to use picking for collision avoidance I had several
problems, please see below.

I need a 'slide along the wall' behavior when moving the avatar
nearly parallel to the wall, so I DON'T use PickRay/PickSegement,
but instead tried PickBounds with a BoundingSphere, PickConeSegment
and PickCylinderSegment, the 2 latter ever pointing into the
direction of movement. Picking is done against GEOMETRY_INTERSECT_INFO.

I have 2 types of test walls: one built from one large QuadArray
with just 4 vertices (but several walls are stuffed into one
Shape3D as multiple Geometries) and the other built from a
TriangleStripArray.

The problems:

- PickBounds: this gave incorrect results, half of my Quad walls
  where not reported as colliding with at all; when moving
  along and 'inside' the TriangleStrip collision was reported
  for several meters, then suddenly several meters were collision
  free, then again several meters with collision and so on.

- PickConeSegment and PickCylinderSegment: with the TriangleStrip
  the collisions were reported correctly. With the Quads the picks
  looked exactly like using PickSegment, the more parallel to the
  wall the nearer one could approach, neither spreadAngle (for
  PickCone) nor radius (for PickCylinder) seemed to be respected.
  This, when testing in the middle of the wall. Near the edges
  the picking was slightly better, but not really correct.

- PickConeSegment: when setting the spreadAngle to 90 degrees
  [PI/2] (which seems to be optimal) ALL Geometry in move
  direction was reported to collide! Currently I work with
  PI / 2.9, which gives acceptable results.

Any hints and pointers are very welcome

thanks

Georg
 ___   ___
| + | |__    Georg Rehfeld      Woltmanstr. 12     20097 Hamburg
|_|_\ |___   [EMAIL PROTECTED]           +49 (40) 23 53 27 10

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to