webots icon indicating copy to clipboard operation
webots copied to clipboard

Automatic tesselation of IndexedFaceSets

Open ad-daniel opened this issue 4 years ago • 0 comments

As mentioned in #2610, the primitive TexturedParallelepiped.proto constructs the faces of the parallelepiped as squares (4-vertices) whereas according to the IndexedFaceSet documentation

When used for collision detection (boundingObject), each face of the IndexedFaceSet must contain exactly three vertices, hence defining a triangle mesh (or trimesh).

When the ensuing shape is used as boundingObject there appears to be a triangulation of the surface taking place which either means the documentation needs updating or something else is going on. The picture below is the triangulation that appears on a TexturedParallelepiped.

triangulation

If it's tesselation, it might be worth ensuring that the way it takes place is such that the normals of each triangle points outwards otherwise interactions with distanceSensors could break again as the angle between the ray and the surface normal is used to determine the validity of a contact point (#2610)

Tasks

  • [ ] double-check if the constraint mentioned on IndexedFaceSets documentation needs removing
  • [ ] ensure tesselation is consistent with ray interaction from distance sensors

ad-daniel avatar Dec 29 '20 22:12 ad-daniel