Fast Contact Determination for Intersecting Deformable Solids O. Civit-Flores 1 , 2 ın 1 A. Sus´ 1 UPC-BarcelonaTech 2 Digital Legends Entertainment Motion in Games 2015 O. Civit-Flores, A. Susin MIG 2015 1 / 31
Outline Introduction 1 Geometry Representation 2 Contact Determination 3 Results 4 O. Civit-Flores, A. Susin MIG 2015 2 / 31
Contact Determination Problem description Compute the geometric information required for contact treatment O. Civit-Flores, A. Susin MIG 2015 3 / 31
Contact Determination Deformable solids Standard approach for deformable solids: Simplified CD geometry. Proximity-based CD. Refitted BVH. No CCD. Challenges: Intersecting geometry. Deformable HD surfaces. O. Civit-Flores, A. Susin MIG 2015 4 / 31
Contact Determination Objectives and approach Practical CD for intersecting deformable solids with HD surfaces. Robust Fast Historyless Our approach: Specialized geometry representation. Intersecting contact determination algorithm. O. Civit-Flores, A. Susin MIG 2015 5 / 31
Outline Introduction 1 Geometry Representation 2 Contact Determination 3 Results 4 O. Civit-Flores, A. Susin MIG 2015 6 / 31
Geometry Representation: VIZ + SIM + CDG Decoupled representations for: Visualization geometry (VIZ). Simulation geometry (SIM). Contact determination geometry (CDG). O. Civit-Flores, A. Susin MIG 2015 7 / 31
Simulation Geometry Generate a strictly bounding coarse tetrahedralization of VIZ [1]: Build regular tetrahedralization of AABB(VIZ). 1 Remove completely external tetrahedrons. 2 Split internal faces that do not pierce VIZ. 3 Shrink external nodes/faces to fit VIZ. 4 O. Civit-Flores, A. Susin MIG 2015 8 / 31
Surface Embedding VIZ and CDG are barycentrically embedded into SIM: Affine, preserves linear features. Fast VIZ transform on GPU, like skinning. Fast on-demand transform and inversion for CD. Preserves bounding property. C 0 continuity. O. Civit-Flores, A. Susin MIG 2015 9 / 31
Contact Determination Geometry Partitioned surface Same detail as VIZ, but optimized for CD: Connected triangle patches clipped to tetrahedron faces. Global arrays of Element, Patch, Triangle and Vertex. Sub-arrays of P ∈ E and T/V ∈ P . Triangle and patch neighbours. O. Civit-Flores, A. Susin MIG 2015 10 / 31
Contact Determination Geometry Nested BVH Elements ∈ SIM: refitted 18-DOP Tree. Patches ∈ Element: constant b -DOP . Triangles ∈ Patch: constant b -DOP Tree. O. Civit-Flores, A. Susin MIG 2015 11 / 31
b -DOP Bounding volume for embedded geometry Cartesian: A 8-DOP , 4 slabs along tetrahedron face normals. Barycentric: An AABP defined by 4 intervals [ a i , b i ] ⊆ [ 0 , 1 ] . Tight cartesian bounds from [ a i , b i ] and sorted SIM nodes [2]. O. Civit-Flores, A. Susin MIG 2015 12 / 31
b -DOP Bounding volume for embedded geometry Cartesian: A 8-DOP , 4 slabs along tetrahedron face normals. Barycentric: An AABP defined by 4 intervals [ a i , b i ] ⊆ [ 0 , 1 ] . Tight cartesian bounds from [ a i , b i ] and sorted SIM nodes [2]. Queries Raycast in barycentric coords. Intersection using tight cartesian bounds. O. Civit-Flores, A. Susin MIG 2015 12 / 31
b -DOP Tree Per-patch BVH in barycentric coords: BVH nodes store subtree b -DOP . Constant under tetrahedron deformation. Implicit topology + quantization + packing ⇒ 0 memory. O. Civit-Flores, A. Susin MIG 2015 13 / 31
b -DOP Tree Per-patch BVH in barycentric coords: BVH nodes store subtree b -DOP . Constant under tetrahedron deformation. Implicit topology + quantization + packing ⇒ 0 memory. Queries Raycast in barycentric coords (transform once) Intersection using tight cartesian bounds (sort once) O. Civit-Flores, A. Susin MIG 2015 13 / 31
Outline Introduction 1 Geometry Representation 2 Contact Determination 3 Results 4 O. Civit-Flores, A. Susin MIG 2015 14 / 31
Contact Determination Given the solids Ω A , Ω B bound by Γ A , Γ B , generate contact constraints: g = ( p A − p B ) T ˆ n AB ≥ 0 O. Civit-Flores, A. Susin MIG 2015 15 / 31
Contact Determination Issues Detailed embedded geometry ⇒ redundant contacts. O. Civit-Flores, A. Susin MIG 2015 16 / 31
Contact Determination Issues Detailed embedded geometry ⇒ redundant contacts. Intersecting geometry ⇒ inconsistent correspondences. O. Civit-Flores, A. Susin MIG 2015 16 / 31
Contact Determination Our solution 1 contact for each disjoint patch region P j A inside Ω B . Contact point p j A at region centroid. O. Civit-Flores, A. Susin MIG 2015 17 / 31
Contact Determination Our solution 1 contact for each disjoint patch region P j A inside Ω B . Contact point p j A at region centroid. Contact normal ˆ n AB from vector area. Correspondence p j A → p j B by raycasting along ˆ n AB . O. Civit-Flores, A. Susin MIG 2015 17 / 31
Contact Determination Algorithm FindITP → intersecting triangle pairs (Nested BVH). 1 MergeIC → intersection curves ∂ Γ i AB (Spatial hash + MF-set). 2 FindCP → interior patch regions (Flood). 3 RaycastCP → contact point correspondences (Nested BVH). 4 O. Civit-Flores, A. Susin MIG 2015 18 / 31
Contact Determination Algorithm FindITP → intersecting triangle pairs (Nested BVH). 1 MergeIC → intersection curves ∂ Γ i AB (Spatial hash + MF-set). 2 FindCP → interior patch regions (Flood). 3 RaycastCP → contact point correspondences (Nested BVH). 4 O. Civit-Flores, A. Susin MIG 2015 18 / 31
Contact Determination Algorithm FindITP → intersecting triangle pairs (Nested BVH). 1 MergeIC → intersection curves ∂ Γ i AB (Spatial hash + MF-set). 2 FindCP → interior patch regions (Flood). 3 RaycastCP → contact point correspondences (Nested BVH). 4 O. Civit-Flores, A. Susin MIG 2015 18 / 31
Contact Determination Algorithm FindITP → intersecting triangle pairs (Nested BVH). 1 MergeIC → intersection curves ∂ Γ i AB (Spatial hash + MF-set). 2 FindCP → interior patch regions (Flood). 3 RaycastCP → contact point correspondences (Nested BVH). 4 O. Civit-Flores, A. Susin MIG 2015 18 / 31
FindCP For each contact region Ω i AB : Flood inwards from ∂ Γ i AB independently on Γ i A , Γ i B . For each interior patch region P j A , compute p j n j A , ˆ A from: Interior triangles → 1 interior region. Clipped triangles → N interior regions. O. Civit-Flores, A. Susin MIG 2015 19 / 31
FindCP Vector area normal Continuous surface patch Γ : � ˆ N V = n dA . Γ Discrete patch with triangles ( v k 1 , v k 2 , v k 3 ) or boundary edges ( v k 1 , v k 2 ) n be n tri N V = 1 1 ) = 1 � ( v k 2 − v k 1 ) × ( v k 3 − v k � v k 1 × v k 2 2 2 k k O. Civit-Flores, A. Susin MIG 2015 20 / 31
FindCP Area and Centroid Discrete patch with triangles ( v k 1 , v k 2 , v k 3 ) : n tri n tri s k = 1 � ( v k 2 − v k 1 ) × ( v k 3 − v k � � S = 1 ) � 2 k k n tri p = 1 � s k ( v k 1 + v k 2 + v k 3 ) 3 S k Clipped triangle planar polygon with edges ( v k 1 , v k 2 ) : s = � N V � n be c = 1 � v k 1 × v k 2 � ( v k 1 + v k � 2 ) 6 s k O. Civit-Flores, A. Susin MIG 2015 21 / 31
FindCP Triangle flood Discover surface region Γ i A interior to ∂ Γ i AB : Stack-based flood using triangle adjacency. Accumulate (clipped) triangle contributions to their P j A : Arbitrary addition order for vector area and centroid. Counter-clockwise orientation convention. Detect cross-patch flood and change target P j A . Final “normalization” pass on all P j A : p j A = � (area-weighted centroids of interior/clipped triangles) / S j n j ˆ A = N V / � N V � O. Civit-Flores, A. Susin MIG 2015 22 / 31
FindCP Patch flood Flood optimization for large interpenetration: Detect cross-patch triangle flood into fully internal patch. Transform precomputed vector area and centroid in O ( 1 ) . Flood to fully internal adjacent patches. O. Civit-Flores, A. Susin MIG 2015 23 / 31
RaycastCP For each contact region Ω i AB : n i AB from ∂ Γ i Compute global contact normal ˆ AB vector area. Raycast from all p j n i AB to find p B ( p j A along ˆ A ) . n i AB ) T ˆ n j n i AB ) T ˆ Check ( ˆ A < 0 and ( ˆ n B > 0. Discard if closer self-hit on Γ A . O. Civit-Flores, A. Susin MIG 2015 24 / 31
RaycastCP vector area contact normals Benefits: Constraint on the whole contact surface. Filters high frequency detail and noisy surface normals. Self-correcting as ∂ Γ i AB shrinks. Exact if either Γ i A or Γ i B is flat. Exact for vertex-face and edge-edge contacts. O. Civit-Flores, A. Susin MIG 2015 25 / 31
Outline Introduction 1 Geometry Representation 2 Contact Determination 3 Results 4 O. Civit-Flores, A. Susin MIG 2015 26 / 31
Results O. Civit-Flores, A. Susin MIG 2015 27 / 31
Results Video1 Video2 O. Civit-Flores, A. Susin MIG 2015 27 / 31
Results O. Civit-Flores, A. Susin MIG 2015 27 / 31
Recommend
More recommend