3d - CGAL Mesh(es) intersection/collision -
i have collision detection module in tracking pipeline, detecting when 2 different meshes collide/interpenetrate or if there self-penetration of articulated mesh. based on depth of penetration there should penalization combats phenomenon. should list of colliding faces/vertices in order so.
after examining several options, decided start working cgal.
in this link there interesting answer pointing examples. (this , this). examples use aabbs (axis-aligned bounding boxes), proposed way non-rigid meshes, since frequent update of them needed. examples clear self-intersection case, following not clear me:
- apart creating b.box each triangles, guess there no tree structure created under hood speed search process. so? if yes, hint so?
- in case of 2 separate meshes, guess it's not nice merge triangles/boxes in 1 vector , follow examples (though mentioned here solution, doesn't sound elegant). hint nice practice? should 1 mix these examples, creating trees of triangles/boxes? although aabb tree mentioned that:
note component not suited problem of finding intersecting pairs of objects. refer component intersecting sequences of dd iso-oriented boxes can find intersecting pairs of iso-oriented boxes.
- the function cgal::box_intersection_d creates segment trees on fly, speed computation of pairs of intersecting aa-bounding boxes.
- as far know, recommended way merge 2 surfaces in 1 vector of custom boxes, boxes have field indicate identifier of surface triangle belongs to. helps discard pairs of boxes same surface.
Comments
Post a Comment