Real-Time Collision Detection for Dynamic Virtual Environments

Similar documents
Bounding Volume Hierarchies

Collision Detection with Bounding Volume Hierarchies

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

BoxPlot++ Zeina Azmeh, Fady Hamoui, Marianne Huchard. To cite this version: HAL Id: lirmm

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

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

Comparison of spatial indexes

Relabeling nodes according to the structure of the graph

Using Bounding Volume Hierarchies Efficient Collision Detection for Several Hundreds of Objects

Fault-Tolerant Storage Servers for the Databases of Redundant Web Servers in a Computing Grid

Lesson 05. Mid Phase. Collision Detection

Efficient implementation of interval matrix multiplication

Ray-traced collision detection for deformable bodies

Multimedia CTI Services for Telecommunication Systems

A Voronoi-Based Hybrid Meshing Method

Intersection Acceleration

Collision Detection based on Spatial Partitioning

Every 3-connected, essentially 11-connected line graph is hamiltonian

The optimal routing of augmented cubes.

Representation of Finite Games as Network Congestion Games

Tacked Link List - An Improved Linked List for Advance Resource Reservation

Collision Detection for Deformable Objects

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

Traffic Grooming in Bidirectional WDM Ring Networks

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

YANG-Based Configuration Modeling - The SecSIP IPS Case Study

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

Computing and maximizing the exact reliability of wireless backhaul networks

Real-time FEM based control of soft surgical robots

Deformetrica: a software for statistical analysis of anatomical shapes

Structuring the First Steps of Requirements Elicitation

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

X-Kaapi C programming interface

Linux: Understanding Process-Level Power Consumption

Mokka, main guidelines and future

Collision and Proximity Queries

How to simulate a volume-controlled flooding with mathematical morphology operators?

A million pixels, a million polygons: which is heavier?

The Proportional Colouring Problem: Optimizing Buffers in Radio Mesh Networks

An Experimental Assessment of the 2D Visibility Complex

Stream Ciphers: A Practical Solution for Efficient Homomorphic-Ciphertext Compression

FIT IoT-LAB: The Largest IoT Open Experimental Testbed

Efficient Collision Detection Using a Dual Bounding Volume Hierarchy

An Efficient Numerical Inverse Scattering Algorithm for Generalized Zakharov-Shabat Equations with Two Potential Functions

Assisted Policy Management for SPARQL Endpoints Access Control

Moveability and Collision Analysis for Fully-Parallel Manipulators

Simulation in Computer Graphics Space Subdivision. Matthias Teschner

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

Dynamic Collision Detection

Modularity for Java and How OSGi Can Help

l Without collision detection (CD), it is practically impossible to construct e.g., games, movie production tools (e.g., Avatar)

HySCaS: Hybrid Stereoscopic Calibration Software

Spatial Data Structures

Linked data from your pocket: The Android RDFContentProvider

Study on Feebly Open Set with Respect to an Ideal Topological Spaces

Fuzzy sensor for the perception of colour

Spatial Data Structures

Prototype Selection Methods for On-line HWR

Change Detection System for the Maintenance of Automated Testing

Accurate Conversion of Earth-Fixed Earth-Centered Coordinates to Geodetic Coordinates

Blind Browsing on Hand-Held Devices: Touching the Web... to Understand it Better

Motion-based obstacle detection and tracking for car driving assistance

SDLS: a Matlab package for solving conic least-squares problems

Workspace and joint space analysis of the 3-RPS parallel robot

NP versus PSPACE. Frank Vega. To cite this version: HAL Id: hal

Setup of epiphytic assistance systems with SEPIA

Improving figures using TikZ/PGF for LATEX: An Introduction

Kernel perfect and critical kernel imperfect digraphs structure

Collision Detection of Point Clouds

Squaring the Circle with Weak Mobile Robots

DANCer: Dynamic Attributed Network with Community Structure Generator

Multi-atlas labeling with population-specific template and non-local patch-based label fusion

An FCA Framework for Knowledge Discovery in SPARQL Query Answers

ASAP.V2 and ASAP.V3: Sequential optimization of an Algorithm Selector and a Scheduler

Very Tight Coupling between LTE and WiFi: a Practical Analysis

Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces

THE COVERING OF ANCHORED RECTANGLES UP TO FIVE POINTS

Quality of Service Enhancement by Using an Integer Bloom Filter Based Data Deduplication Mechanism in the Cloud Storage Environment

Primitive roots of bi-periodic infinite pictures

Scan chain encryption in Test Standards

lambda-min Decoding Algorithm of Regular and Irregular LDPC Codes

Simulations of VANET Scenarios with OPNET and SUMO

Comparison of radiosity and ray-tracing methods for coupled rooms

Branch-and-price algorithms for the Bi-Objective Vehicle Routing Problem with Time Windows

A Methodology for Improving Software Design Lifecycle in Embedded Control Systems

Synthesis of fixed-point programs: the case of matrix multiplication

Service Reconfiguration in the DANAH Assistive System

Scale Invariant Detection and Tracking of Elongated Structures

THE KINEMATIC AND INERTIAL SOIL-PILE INTERACTIONS: CENTRIFUGE MODELLING

Is GPU the future of Scientific Computing?

Minor-monotone crossing number

Combined video and laser camera for inspection of old mine shafts

A case-based reasoning approach for invoice structure extraction

The Connectivity Order of Links

Regularization parameter estimation for non-negative hyperspectral image deconvolution:supplementary material

Malware models for network and service management

Weed Leaf Recognition in Complex Natural Scenes by Model-Guided Edge Pairing

A Practical Approach for 3D Model Indexing by combining Local and Global Invariants

Taking Benefit from the User Density in Large Cities for Delivering SMS

A Generic Architecture of CCSDS Low Density Parity Check Decoder for Near-Earth Applications

Transcription:

Real-Time Collision Detection for Dynamic Virtual Environments Gabriel Zachmann, Matthias Teschner, Stefan Kimmerle, Bruno Heidelberger, Laks Raghupathi, Arnulph Fuhrmann To cite this version: Gabriel Zachmann, Matthias Teschner, Stefan Kimmerle, Bruno Heidelberger, Laks Raghupathi, et al.. Real-Time Collision Detection for Dynamic Virtual Environments. IEEE VR Tutorials, Mar 2005, Bonn, Germany. IEEE Computer Society, pp.310, 2005, <http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1492815>. <10.1109/VR.2005.1492815>. <inria-00537446> HAL Id: inria-00537446 https://hal.inria.fr/inria-00537446 Submitted on 18 Nov 2010 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Tutorial: Real-Time Collision Detection for Dynamic Virtual Environments Bounding Volume Hierarchies Stefan Kimmerle WSI/GRIS University of Tübingen Outline Introduction Bounding Volume Types Hierarchy Hierarchy Construction Hierarchy Update Hierarchy Traversal Comparison Rigid-Deformable Objects Examples and Conclusion

Introduction Problem of Collision Detection: Object representations in simulation environments do not consider impenetrability. Collision Detection: Detection of interpenetrating objects. The problem is encountered in computer-aided design and machining (CAD/CAM), robotics, automation, manufacturing, computer graphics, animation and computer simulated environments. Introduction

Introduction Definition of Bounding Volume Hierarchy (BVH): Each node of a tree is associated with a subset of primitives of the objects together with a bounding volume (BV) that encloses this subset with the smallest instance of some specified class of shape. Introduction Use these BVs as simplified surface representation for fast approximate collision detection test: Examples of BVs: Spheres Discrete oriented polytopes (k-dops) Axis-aligned bounding boxes (AABB) Object-oriented bounding boxes (OBB) Check bounding volumes to get the information whether bounded objects could interfere. Avoid checking all object primitives against each other. Assumption that collisions between objects are rare.

Outline Introduction Bounding Volume Types Hierarchy Hierarchy Construction Hierarchy Update Hierarchy Traversal Comparison Rigid-Deformable Objects Examples and Conclusion Bounding Volumes Spheres are represented by center and radius r. x r sphere x r 1 x r 2 r 1 r 2 Two spheres do not overlap if r r r r ( x x ) ( x x ) > ( r + r 1 2 1 2 2 1 2)

Bounding Volumes Sphere as bounding volume: sphere good choice bad choice Bounding Volumes Discrete oriented polytopes (k-dop) are a generalization of axis aligned bounding boxes (AABB) defined by k hyperplanes with normals in discrete directions ( n : {0, 1} ). k n k, j ± k-dop is defined by k/2 pairs of min, max values in k directions. y Two k-dops do not overlap, if the intervals in one direction do not overlap. min 1 max 1 min 2 x DOP max 2

Bounding Volumes Different k-dops: 6-DOP (AABB) 14-DOP 18-DOP 26-DOP DOP Bounding Volumes 14-DOP as bounding volume: optimal choice also good choice DOP

Bounding Volumes Object oriented bounding boxes (OBB) can be represented by the principal axes of a set of vertices. These axes have no discrete orientation. They move together with the object. The axes are given by the Eigenvectors of the covariance matrix: Centre of vertices x r i : Covariance matrix: r µ = 1 r n x i n i= 1 n 1 C jk = r n i= 1 x = r i x i µ x x ij ik j, k =1..3 OBB Bounding Volumes OBB overlap test: Α T Β p A T L A and B do not overlap if: p B L L : T L > p A + p B OBB Problem: Find direction of L

Bounding Volumes Principal axes of an object are not always a good choice for the main axes of an OBB! Inhomogeneous vertex distribution can cause bad OBBs. OBB Bounding Volumes Better approximation, higher build and update costs sphere AABB DOP OBB convex hull Smaller computational costs for overlap test

Outline Introduction Bounding Volume Types Hierarchy Hierarchy Construction Hierarchy Update Hierarchy Traversal Comparison Rigid-Deformable Objects Examples and Conclusion Bounding Volume Hierarchy To further accelerate collision detection: use hierarchy over bounding volumes nodes contain bounding volume information leaves additionally contain information on object primitives

Hierarchy Construction Parameters Bounding volume Type of tree (binary, 4-ary, k-d-tree, ) Bottom-up/top-down Heuristic to subdivide/group object primitives or bounding volumes How many primitives in each leaf of the BV tree Goals Balanced tree Tight-fitting bounding volumes Minimal redundancy (primitives in more than one BV per level) Hierarchy Construction Bottom-Up Start with object-representing primitives Fit a bounding volume to given number of primitives Group primitives and bounding volumes recursively Stop in case of a single bounding volume at a hierarchy level Top-Down Start with object Fit a bounding volume to the object Split object and bounding volume recursively according to heuristic Stop, if all bounding volumes in a level contain less than n primitives

Hierarchy Construction Top-Down Node-split: Split k-dop using heuristic: Try to minimize volume of children (Zachmann VRST02). Split along the longest side of the k-dop (Mezger et al. WSCG03). The splitting continues until n single elements remain per leaf. Hierarchy Construction Bottom-Up Node-grouping: Group nodes using heuristic: Try to get round-shaped patches by improving a shape factor for the area (Volino et al. CGF94). Group until all elements are grouped and the root node of the hierarchy is reached.

Hierarchy Update Updating is necessary in each time step due to movement/deformation of simulated object. Difference between rigid and deformable objects: For rigid objects: transformations can be applied to complete object. For deformable objects: all BVs need to be updates separately. Update is possible top-down or bottom-up. To avoid a complete update of all nodes in each step, different update strategies have been proposed. Hierarchy Update Some object transformations can be simply applied to all elements of the bounding-volume tree: Spheres Translation, rotation sphere Discrete Orientation Polytopes Translation, no rotation (discrete orientations of k hyperplanes for all objects) DOP Object-Oriented Bounding Boxes Translation, rotation (box orientations are not fixed) OBB

Hierarchy Update Larsson and Akenine-Möller (EG 2001): If many deep nodes are reached, bottom-up update is faster. For only some deep nodes reached, top-down update is faster. -> Update top half of hierarchy bottom-up -> only if non-updated nodes are reached update them topdown. Reduction of unnecessarily updated nodes! Leaf information of vertices/faces has to be stored also in internal nodes -> higher memory requirements. Hierarchy Update Mezger et al. (WSCG 2003): Inflate bounding volumes by a certain distance depending on velocity. Update is only necessary if enclosed objects moved farther than that distance. -> Fewer updates necessary. -> More false positive collisions of BVs. v

Hierarchy Traversal Binary trees: Object a 0 a Object b 1 2 b c 3 4 5 6 d e f g Collision test: Minimize probability of intersection as fast as possible: Test node with smaller volume against the children of the node with larger volume. 1a 5b 0a 2b 6d 2a 6b 2c 6e Hierarchy Traversal 4-ary Trees: Object a 0 a Object b 3 4 5 6 d e f g Collision test: 0a Higher order trees: Fewer nodes Total update costs are lower 3a 4a 5a 6a 6d 6e 6f 6g Recursion depth during overlap tests is lower, therefore lower memory requirements on stack

Outline Introduction Bounding Volume Types Hierarchy Hierarchy Construction Hierarchy Update Hierarchy Traversal Comparison Rigid-Deformable Objects Examples and Conclusion Comparison Collision Detection for Rigid and Deformable Objects Rigid Objects: use OBBs as they are usually tighter fitting and can be updated by applying translations and rotations. update complete BVH by applying transformations usually small number of collisions occur Deformable Object: use DOPs as update costs are lower than for OBBs update by refitting or rebuilding each BV separately (top-down, bottom-up) high number of collisions may occur Self-collisions need to be detected use higher oder trees (4-ary, 8- ary)

Outline Introduction Bounding Volume Types Hierarchy Hierarchy Construction Hierarchy Update Hierarchy Traversal Comparison Rigid-Deformable Objects Examples and Conclusion Example

Example Conclusions BVHs are well-suited for animations or interactive applications, since updating can be done very efficiently. BVHs can be used to detect self-collisions of deformable objects while applying additional heuristics to accelerate this process. BVHs work with triangles or tetrahedrons which allow for a more sophisticated collision response compared to a pure vertex-based response. Optimal BVH and BV dependent on application (collision or proximity detection) and type of objects (rigid / deformable object)

Thank you Thank you! Thanks to Matthias Teschner (University of Freiburg) and Johannes Mezger (University of Tübingen) for contributions to the slides!