Efficient Collision Detection for Example-Based Deformable Bodies

Similar documents
Comparing Sphere-Tree Generators and Hierarchy Updates for Deformable Objects Collision Detection

Collision Detection with Bounding Volume Hierarchies

Simulation in Computer Graphics. Deformable Objects. Matthias Teschner. Computer Science Department University of Freiburg

Collision Detection based on Spatial Partitioning

Computational Design. Stelian Coros

10 - ARAP and Linear Blend Skinning

Efficient Updates of Bounding Sphere Hierarchies for Geometrically Deformable Models

Reclustering for Large Plasticity in Clustered Shape Matching

Physical based Rigging

Simulation in Computer Graphics Space Subdivision. Matthias Teschner

An Adaptive Collision Detection and Resolution for Deformable Objects Using Spherical Implicit Surface

Collision Detection II. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill

Efficient Collision Detection Using a Dual Bounding Volume Hierarchy

Cloth Simulation. Tanja Munz. Master of Science Computer Animation and Visual Effects. CGI Techniques Report

Chapter 9 Animation System

CPSC / Sonny Chan - University of Calgary. Collision Detection II

Muscle Based facial Modeling. Wei Xu

BALANCED SPATIAL SUBDIVISION METHOD FOR CONTINUOUS COLLISION DETECTION

Deformable Proximity Queries and their Application in Mobile Manipulation Planning

Skinning Mesh Animations

Consistent Penetration Depth Estimation for Deformable Collision Response

High-performance Penetration Depth Computation for Haptic Rendering

3D Physics Engine for Elastic and Deformable Bodies. Liliya Kharevych and Rafi (Mohammad) Khan Advisor: David Mount

Exact distance computation for deformable objects

Intersection Acceleration

Collision Detection. Pu Jiantao.

Minimum Bounding Boxes for Regular Cross-Polytopes

T6: Position-Based Simulation Methods in Computer Graphics. Jan Bender Miles Macklin Matthias Müller

Deformable Distance Fields for Simulation of Non- Penetrating Flexible Bodies

Shrinkwrap developments for computational electromagnetics in ICE NITe

Physically Based Simulation

Physically Based Simulation

Virtual Environments

Collision Detection. Motivation - Dynamic Simulation ETH Zurich. Motivation - Path Planning ETH Zurich. Motivation - Biomedical Simulation ETH Zurich

Bounding Volume Hierarchies

Cloth Animation with Collision Detection

Interaction of Fluid Simulation Based on PhysX Physics Engine. Huibai Wang, Jianfei Wan, Fengquan Zhang

Real-Time Collision Detection for Dynamic Virtual Environments

Learning Cost Functions for Mobile Robot Navigation in Environments with Deformable Objects

Hierarchy Accelerated Stochastic Collision Detection

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Animation. Motion over time

Fracture & Tetrahedral Models

Physically-Based Laser Simulation

Fracture & Tetrahedral Models

Planning Motion in Completely Deformable Environments

Collision Detection. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill

CLOTH - MODELING, DEFORMATION, AND SIMULATION

CAB: Fast Update of OBB Trees for Collision Detection between Articulated Bodies

Introduction to Computer Graphics. Animation (1) May 19, 2016 Kenshi Takayama

Overview. Collision Detection. A Simple Collision Detection Algorithm. Collision Detection in a Dynamic Environment. Query Types.

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces

Computer Graphics Ray Casting. Matthias Teschner

Chapter 4 Concepts from Geometry

Lesson 05. Mid Phase. Collision Detection

Homework 1: Implicit Surfaces, Collision Detection, & Volumetric Data Structures. Loop Subdivision. Loop Subdivision. Questions/Comments?

Simple Silhouettes for Complex Surfaces

Polygon Meshes and Implicit Surfaces

Polygon Meshes and Implicit Surfaces

Advanced Computer Graphics

Deformable and Fracturing Objects

Approximating Polygonal Objects by Deformable Smooth Surfaces

11 - Spatial Data Structures

arxiv: v1 [cs.gr] 16 May 2017

Free-Form Deformation Axis Aligned Bounding Box

Spatial Data Structures

Ray-traced collision detection for deformable bodies

Lesson 01 Polygon Basics 17. Lesson 02 Modeling a Body 27. Lesson 03 Modeling a Head 63. Lesson 04 Polygon Texturing 87. Lesson 05 NURBS Basics 117

Spatial Data Structures

Advanced geometry tools for CEM

Animation of 3D surfaces.

MSBVH: An Efficient Acceleration Data Structure for Ray Traced Motion Blur

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Spectral Surface Reconstruction from Noisy Point Clouds

08: CONTACT MODELLING 15/02/2016

Fast continuous collision detection among deformable Models using graphics processors CS-525 Presentation Presented by Harish

Dynamic Radial View Based Culling for Continuous Self-Collision Detection

Simulation (last lecture and this one)

Offset Triangular Mesh Using the Multiple Normal Vectors of a Vertex

66 III Complexes. R p (r) }.

Surface Reconstruction. Gianpaolo Palma

11/1/13. Polygon Meshes and Implicit Surfaces. Shape Representations. Polygon Models in OpenGL. Modeling Complex Shapes

Geometry Representations with Unsupervised Feature Learning

Constructive Solid Geometry and Procedural Modeling. Stelian Coros

Research Article Polygon Morphing and Its Application in Orebody Modeling

Efficient Path Planning for Mobile Robots in Environments with Deformable Objects

New Reliable Algorithm of Ray Tracing. through Hexahedral Mesh

Rigid Body Dynamics, Collision Response, & Deformation

THE development of stable, robust and fast methods that

Tracking Minimum Distances between Curved Objects with Parametric Surfaces in Real Time

A skeleton/cage hybrid paradigm for digital animation

Full-Body Behavioral Path Planning in Cluttered Environments

Collision Detection of Point Clouds

Point Cloud Collision Detection

Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps

A Multiresolutional Approach for Facial Motion Retargetting Using Subdivision Wavelets

Local Mesh Operators: Extrusions Revisited

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

CSE 554 Lecture 7: Deformation II

Mesh Repairing and Simplification. Gianpaolo Palma

Transcription:

Efficient Collision Detection for Example-Based Deformable Bodies ABSTRACT Ben Jones University of Utah benjones@cs.utah.edu Tamar Shinar University of California, Riverside We introduce a new collision proxy for example-based deformable bodies. Specifically, we approximate the deforming geometry as a union of spheres. During pre-computation we perform a sphere packing on the input, undeformed geometry. Then, for each example pose, we move and resize the spheres to approximate the example. During runtime we blend together these positions and radii, using the same skinning weights we use for the geometry. We demonstrate the method on a car crash example, where we achieve an overall speedup of 5-20 times, depending on the resolution of the collision proxy geometry. CCS CONCEPTS Computing methodologies Simulation by animation; Physical simulation; KEYWORDS Example-based Simulation, Collision Detection, Skinning, Local Blending ACM Reference format: Ben Jones, Joshua Levine, Tamar Shinar, and Adam W. Bargteil. 2017. Efficient Collision Detection for Example-Based Deformable Bodies. In Proceedings of MiG 17, Barcelona, Spain, November 8 10, 2017, 5 pages. https://doi.org/10.1145/3136457.3136469 1 INTRODUCTION Robust detection and handling of collisions is a vital component of simulation systems. While most render geometry is represented using triangle meshes, that representation poses significant challenges for collision detection and response. While techniques and software exist that work directly with triangle meshes, they often require very small timesteps, are computationally expensive, and must avoid pitfalls arising from finite-precision arithmetic. As a result, interactive simulators often use collision proxy shapes that approximate the shape of the render mesh and are more stable Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. 2017 Copyright held by the owner/author(s). Publication rights licensed to Association for Computing Machinery. ACM ISBN 978-1-4503-5541-4/17/11... $15.00 https://doi.org/10.1145/3136457.3136469 Joshua Levine University of Arizona Adam W. Bargteil University of Maryland, Baltimore County and numerically efficient. These proxy shapes are commonly constructed as a union of convex shapes, such as spheres or discrete oriented polytopes (K-DOPs). Unfortunately, computing such a decomposition can be computationally expensive, so this approach is insufficient for simulating objects that can undergo arbitrary deformations. In this work, we describe a method for computing and maintaining such a convex decomposition for example-based deformable bodies. At run time these objects deform into a blend of artistprovided deformations. Since the example deformations are known a priori, we can precompute convex decompositions for each deformation and efficiently compute the deformed convex decomposition as a blend of the example proxies. 2 RELATED WORK A comprehensive review of collision handling is beyond the scope of this paper, but we recommend the survey by Teschner and colleagues [2004]. Because collision detection with convex geometry is far simpler and faster than geometry with concavities, static objects are typically broken up into a convex decomposition a set of convex pieces that are equivalent to the original geometry. Unfortunately, this approach breaks down with deforming geometry not only because the intial decomposition no longer represents the deformed geometry, but also because deformation can introduce new concavities, so simply updating the collision geometry requires more complex and expensive collision detection algorithms. One approach to collision detection of deformable bodies in the context of real-time simulation is to develop highly optimized algorithms [Civit-Flores and Susín 2015]. Another approach is to adopt the classic technique of creating simple collision proxies for complex geometry [Baraff and Witkin 1997; Hubbard 1996]. Typically these proxies are made up of many convex pieces. Unfortunately, when geometry deforms these proxies are no longer valid and must be updated. Like work with model reduced elastic bodies [Barbic and James 2010; Kim and James 2011] and the work of Spillmann and colleagues [Spillmann et al. 2007], who assume a deformation model based on shape matching, we take advantage of the fact that our deformations are not entirely general. In our application, runtime deformations are determined by a blend of example deformations, enabling us to derive a simple and efficient approach for deforming collision proxies. 3 METHOD Our method decomposes an arbitrary simulation object, whose surface is represented as a triangle mesh, into a set of overlapping

Ben Jones, Joshua Levine, Tamar Shinar, and Adam W. Bargteil Simulation Authoring Input geometry Impulses Rig Characteristic Deformations Step RB simulator with sphere proxies Project onto examples Update example weights Deform objects with sphere-based impulses Propagate to neighborhood Modulate coefficient of restitution Figure 1: Overview of the authoring and simulation process, depicting the example-based deformation system of Jones and colleagues combined with our novel collision proxy geometry (yellow). spheres. As the object deforms at runtime, the spheres are moved and resized so that the surface of their union approximates the deformed geometry of the object. To implement this efficiently, our algorithm consists of a precomputation step and an efficient run time update. 3.1 Input and Notation As input, our method requires: an undeformed triangle mesh, M0 a set of e deformed meshes, M1,..., Me, the example deformations of the object a function, f that maps an interior vertex x 0 from inside M0 to its deformed position in each Mi. In our implementation, all meshes share the same topology. We tetrahedralize M0 before deforming it into meshes M1,..., Me, and f is computed by barycentric interpolation. However, this implementation choice is not required by our method. 3.2 Simulator Dynamics To motivate the remainder of our method, we will briefly describe the simulation work we used in our implementation. We implemented our collision detection and response system within the example-based plastic deformation simulator of Jones and colleagues [2016]. For completeness, we provide a brief overview of the simulation method but refer the reader to [Jones et al. 2016] for further details. Deformed meshes, Mi are computed by rigging the undeformed mesh, M0, with control handles and using linear blend skinning. To ease authoring, we tetrahedralize the mesh and compute skinning weights via the method of Jacobson and colleagues [2011]. Since the interior tetrahedral mesh vertices are skinned as well, we can compute our map, f, by using barycentric interpolation on the tetrahedral vertices. The simulator is based on the Bullet rigid body simulator. The motion of objects is modeled as completely rigid (i.e., the degrees of freedom are a single translation and rotation per object). Plastic deformation is incorporated by modifying the shape of the object based on the collision impulses generated during simulation. We Figure 2: Car crash scene with render geometry (left) and collision proxies overlaid on render geometry (right) make use of Bullet s compound collision shape which uses a bounding volume tree to accelerate collision queries. At each tetrahedral mesh vertex, we compute the skinned position via linear blend skinning. However, the handle transforms vary per-vertex. The handle transform at a given point is computed by blending the handle transforms of the example poses. While our prototype is built on a simulator that incorporates only plastic deformation, our approach is applicable to elastic objects as well. Also, our method is applicable to any deformation model where a few representative or extreme deformations are known in advance and can be locally interpolated. 3.3 Precomputation Our precomputation step outputs a set of spheres, S0, as well as e deformations of that set, Si, i [1..e]. Each deformation contains the same number of spheres, with modified positions and radii. For each sphere set, Si, the surface of their union approximate the corresponding mesh, Mi. 3.3.1 Initial Collision Proxy (S0 ). We begin by computing S0 from M0 by adapting the approach of Budsberg and colleagues [2014]. We compute a signed distance field of M0 and iteratively add spheres to the set S0. Each sphere we add is centered at the minimum of the signed distance field, following the convention that

Efficient Collision Detection for Example-Based Deformable Bodies Figure 3: Cars crash into each other after launching off ramps. From left to right, 320, 114, and 66 spheres per car. Decreasing the number of spheres improves performance but increases, visualized in red, below. interior points are negative and hence the center is maximally far from the surface. We set the radius of this sphere to be the minimum of a user-defined maximum radius and the original distance from the center to the surface. The signed distance field is then updated by setting the values at all points inside the sphere to be 0. This prevents our algorithm from creating a new sphere whose center lies within an existing sphere, resulting in a proxy with fewer spheres. This procedure terminates when the next sphere to be added would have a radius smaller than a user-defined minimum size or the total number of spheres exceeds a user-defined maximum. Note that since sphere radii are determined by the distance to the triangle mesh, rather than the distance to existing spheres, the spheres will overlap and be entirely contained with the surface. The number and size of spheres is controlled by modifying the resolution of the signed distance field as well as the three user parameters for total number of spheres and the minimum and maximum allowed sphere radii. These controls allow the user to trade off between the accuracy of the collision proxy and the computational cost of collision detection. For the examples in this paper, we set the maximum number of spheres to be infinity, so the the minimum sphere radius is the only active termination criteria. In a resource constrained application, the maximum number of spheres may be a more convenient parameter. 3.3.2 Example Collision Proxies (Si ). Once S0 is computed, the deformed sphere sets Si are computed. For each sphere in S0, the corresponding sphere center in Si is computed via the map, f. Its radius is computed via the same procedure as above: the minimum of the user defined maximum radius and the distance to Mi. As centers move, it becomes possible that the sets Si could contain gaps. This situation is mitigated by the fact that the sphere overlaps are typically deep in S0. In our examples, gaps that did occur did not affect simulation quality(s are quantified in Figures 5 and 6). Gaps could also be reduced by using a smaller maximum radius value, at the cost of requiring additional spheres. 3.4 Runtime Collision Proxies As the object deforms, we update the position and radii of the spheres by blending the precomputed deformations Si. We assume that the current deformation of the object is a barycentric blend of the undeformed pose and the e example deformations. We compute the current sphere positions and radii as a barycentric blend of Si, i [0..e]. These blends need not be global. In our implementation, each tetrahedral mesh vertex stores the barycentric coordinates of the blend at that point. To deform our spheres, we use the barycentric coordinates of the nearest tetrahedral mesh vertex in the initial pose. 4 RESULTS AND DISCUSSION Table1 gives timing information for the example in Figure 3, where a number of cars are launched at each other. Notably, even with the highest resolution collision proxies, our approach results in a 5 speedup; with a very coarse but still passable approximation,

Ben Jones, Joshua Levine, Tamar Shinar, and Adam W. Bargteil Table 1: Timing in ms for 10 seconds of animation for the car crash example. For comparison, the final row gives timing information for the method of Jones and colleagues [2016]. Even at the highest resolution our collision proxies reduce computation time by a factor of five. # Spheres Rigid Body Sim Total 320 29.4 37.3 114 10.4 13.7 66 6.6 10.5 Triangle Mesh 151.9 210.0 we achieve a 20 speedup relative to triangle based collision detection with approximately 1500 triangles per car. Figure 5 plots the median and maximum during the simulation, computed as the distance from input mesh vertices to the surface of the sphere proxy surface. Because the dynamics and deformations are driven by collisions, the resulting animations differ slightly. Figure Figure 2 shows an additional example where a car crashes into a pyramid of barrels. In Figure 4, we show a set barrels being dropped onto a loading dock. The number of spheres decreases from left to right by increasing the minimum allowed sphere radius. With fewer spheres, the collision proxies do not fill in the sharp corners of the barrel, but still produce reasonable results. The median and maximum s are plotted in Figure 6. We note that because our approach requires a water-tight input mesh to create the distance field, our proxies are not based on the high-resolution render geometry, but rather a coarser, watertight approximation. As a result, some spheres can be seen poking through the render geometry of the car. 4.1 Future Work While our method improves performance relative to the baseline of performing triangle-mesh collisions, there is room for further optimization. In particular, it may be possible to accelerate collision queries using a custom bounding volume structure rather than the more general implementation in Bullet. While the size of gaps between spheres is easily controllable for the undeformed mesh, M 0, the sphere approximation is less accurate during deformation, as shown in Figures 5 and 6. To improve the surface approximation in the deformed meshes, it may be possible to construct a signed distance for the deformed meshes and spheres. Then, by following the method from Section 3.3.1, we can compute spheres that fill in gaps in the deformed shape, which can then be mapped back to the rest space via the inverse map, f 1. This would increase the accuracy of the approximation at the cost of additional precomputation, and the use of more spheres. Figure 4: Barrels with a decreasing number of spheres dropped on a loading dock. The top row shows the measured as the distance from the mesh to the sphere proxy surface. The barrel with the fewest spheres has the highest near the sharp edges of the barrel. Barbic, J. and James, D. L. 2010. Subspace self-collision culling. ACM Trans. Graph. 29, 4, 81:1 81:9. https://doi.org/10.1145/1833351.1778818 Budsberg, J., Zafar, N. B., and Aldén, M. 2014. Elastic and Plastic Deformations with Rigid Body Dynamics. In ACM SIGGRAPH Talks. Article 52, 1 pages. https://doi. org/10.1145/2614106.2614132 Civit-Flores, O. and Susín, A. 2015. Fast contact determination for intersecting deformable solids. In Proceedings of the 8th ACM SIGGRAPH Conference on Motion in Games, MIG 2015, Paris, France, November 16-18, 2015. 205 214. Hubbard, P. M. 1996. Approximating polyhedra with spheres for time-critical collision detection. ACM Transactions on Graphics (TOG) 15, 3, 179 210. Jacobson, A., Baran, I., Popović, J., and Sorkine, O. 2011. Bounded Biharmonic Weights for Real-time Deformation. ACM Trans. Graph. 30, 4, 78:1 78:8. Jones, B., Thuerey, N., Shinar, T., and Bargteil, A. W. 2016. Example-based plastic deformation of rigid bodies. ACM Trans. Graph. 35, 4, 34. Kim, T. and James, D. L. 2011. Physics-based Character Skinning using Multi-Domain Subspace Deformations. In Proceedings of the 2011 Eurographics/ACM SIGGRAPH Symposium on Computer Animation, SCA 2011, Vancouver, BC, Canada, 2011. 63 72. Spillmann, J., Becker, M., and Teschner, M. 2007. Efficient updates of bounding sphere hierarchies for geometrically deformable models. Journal of Visual Communication and Image Representation 18, 2, 101 108. Teschner, M., Kimmerle, S., Zachmann, G., Heidelberger, B., Raghupathi, L., Fuhrmann, A., Cani, M.-P., Faure, F., Magnenat-Thalmann, N., and Strasser, W. 2004. Collision Detection for Deformable Objects. In Eurographics 2004, State-of-the-Art Report. Eurographics Association, 119 135. ACKNOWLEDGMENTS This work was partially supported by the National Science Foundation under Grant No. IIS-1314896, IIS-1654221, and IIS-1314813 REFERENCES Baraff, D. and Witkin, A. (Eds.). 1997. Physically Based Modeling: Principles and Practice. ACM SIGGRAPH 1997 Course Notes, Vol. 19. ACM SIGGRAPH.

Efficient Collision Detection for Example-Based Deformable Bodies 0.070 0.065 0.090 0.085 0.12 0.060 0.080 0.11 0.055 0.075 0.10 0.050 0.070 0.09 0.045 0.040 0.065 0.060 0.08 Maximum Maximum 0.55 Maximum 0.25 0.20 0.25 0.50 0.45 0.40 0.15 0.20 Figure 5: Median (top row), and maximum (bottom row) for the animation from Figure 3 with (left to right) 320, 114, and 66 spheres. Error measured as distance in meters from the triangle mesh vertices to the sphere proxy surface. The car is 5.25 meters long. Each color represents one of the 8 cars in the scene. 0.035 0.030 0.025 364 spheres 231 spheres 152 spheres 99 spheres 81 spheres 61 spheres 39 spheres 0.16 0.14 0.12 Maximum 364 spheres 231 spheres 152 spheres 99 spheres 81 spheres 61 spheres 39 spheres 0.020 0.10 0.08 0.015 0 50 100 150 200 250 300 0.06 0 50 100 150 200 250 300 Figure 6: Median (left), and maximum (right) for the animation from Figure 4. Error measured as distance in meters from the triangle mesh vertices to the sphere proxy surface. The barrel is 0.72 meters tall.