Historical Prospective Objective, scope and limitations


Collision detection for deformable objects



Download 349.66 Kb.
Page5/10
Date20.10.2016
Size349.66 Kb.
#6497
1   2   3   4   5   6   7   8   9   10

Collision detection for deformable objects


Collision detection

Realistic interaction of simulated soft objects with their environment may be important for obtaining visually realistic results. Cloth self-intersection is important in some applications for acceptably realistic simulated garments. This is challenging to achieve at interactive frame rates, particularly in the case of detecting and resolving self collisions and mutual collisions between two or more deformable objects.

Collision detection may be discrete/a posteriori (meaning objects are advanced in time through a pre-determined interval, and then any penetrations detected and resolved), orcontinuous/a priori (objects are advanced only until a collision occurs, and the collision is handled before proceeding). The former is easier to implement and faster, but leads to failure to detect collisions (or detection of spurious collisions) if objects move fast enough. Real-time systems generally have to use discrete collision detection, with other ad hoc ways to avoid failing to detect collisions.

Detection of collisions between cloth and environmental objects with a well defined "inside" is straightforward since the system can detect unambiguously whether the cloth mesh vertices and faces are intersecting the body and resolve them accordingly. If a well defined "inside" does not exist (e.g. in the case of collision with a mesh which does not form a closed boundary), an "inside" may be constructed via extrusion. Mutual- or self-collisions of soft bodies defined by tetrahedra is straightforward, since it reduces to detection of collisions between solid tetrahedra.

However, detection of collisions between two polygonal cloths (or collision of a cloth with itself) via discrete collision detection is much more difficult, since there is no unambiguous way to locally detect after a time step whether a cloth node which has penetrated is on the "wrong" side or not. Solutions involve either using the history of the cloth motion to determine if an intersection event has occurred, or doing a global analysis of the cloth state to detect and resolve self-intersections. Pixar has presented a method which uses a global topological analysis of mesh intersections in configuration space to detect and resolve self-interpenetration of cloth. Currently, this is generally too computationally expensive for real-time cloth systems.

To do collision detection efficiently, primitives which are certainly not colliding must be identified as soon as possible and discarded from consideration to avoid wasting time. To do this, some form of spatial subdivision scheme is essential, to avoid a brute force test of O[n2] primitive collisions. Approaches used include:



  • Bounding volume hierarchies (AABB trees, OBB trees, sphere trees)

  • Grids, either uniform (using hashing for memory efficiency) or hierarchical (e.g. Octreekd-tree)

  • Coherence-exploiting schemes, such as sweep and prune with insertion sort, or tree-tree collisions with front tracking.

  • Hybrid methods involving a combination of various of these schemes, e.g. a coarse AABB tree plus sweep-and-prune with coherence between colliding leaves.

Other effects which may be simulated via the methods of soft-body dynamics are:

  • Destructible materials: Fracture of brittle solids, cutting of soft bodies, and tearing of cloth. The finite element method is especially suited to modelling fracture as it includes a realistic model of the distribution of internal stresses in the material, which physically is what determines when fracture occurs, according to fracture mechanics.

  • Plasticity (permanent deformation) and melting

  • Simulated hair, fur, and feathers

  • Simulated organs for biomedical applications

Simulation of fluids in the context of computer graphics would not normally be considered soft-body dynamics, which is usually restricted to mean simulation of materials which have a tendency to retain their shape and form. In contrast, a fluid assumes the shape of whatever vessel contains it, as the particles are bound together by relatively weak forces.



Rigid body dynamics


In physicsrigid body dynamics is the study of the motion of rigid bodies. Unlike particles, which move only in three degrees of freedom (translation in three directions), rigid bodies occupy space and have geometrical properties, such as a centre of massmoments of inertia, etc., that characterize motion in six degrees of freedom (translation in three directions plus rotation in three directions). Rigid bodies are also characterized as being non-deformable, as opposed to deformable bodies. As such, rigid body dynamics is used heavily in analyses and computer simulations of physical systems and machinery where rotational motion is important, but material deformation does not have a significant effect on the motion of the system.

Rigid body linear momentum


Newton's Second Law states that the rate of change of the linear momentum of a particle with constant mass is equal to the sum of all external forces acting on the particle:

\frac{\mathrm{d}(m \mathbf{v})}{\mathrm{d}t}=\sum_{i=1}^n \mathbf{f}_i

where m is the particle's mass, v is the particle's velocity, their product mv is the linear momentum, and fi is one of the N number of forces acting on the particle.

Because the mass is constant, this is equivalent to

m \frac{\mathrm{d}\mathbf{v}}{\mathrm{d}t}=\sum_{i=1}^n \mathbf{f}_i.

To generalize, assume a body of finite mass and size is composed of such particles, each with infinitesimal mass dm. Each particle has a position vector r. There exist internal forces, acting between any two particles, and external forces, acting only on the outside of the mass. Since velocity v is the derivative of position r, the derivative of velocity dv/dt is the second derivative of position d2r/dt2, and the linear momentum equation of any given particle is



\mathrm{d}m \frac{\mathrm{d}^2\mathbf{r}}{\mathrm{d}t^2}= \sum_{i=1}^m \mathbf{f}_{i,\text{internal}} + \sum_{j=1}^n \mathbf{f}_{j,\mathrm{external}}.

When the linear momentum equations for all particles are added together, the internal forces sum to zero according to Newton's third law, which states that any such force has opposite magnitudes on the two particles. By accounting for all particles, the left side becomes an integral over the entire body, and the second derivative operator can be moved out of the integral, so



 \frac{\mathrm{d}^2}{\mathrm{d}t^2} \int \mathbf{r}\, \mathrm{d}m = \sum_{j=1}^n \mathbf{f}_{j,\mathrm{external}}.

Let M be the total mass, which is constant, so the left side can be multiplied and divided by M, so



 m \frac{\mathrm{d}^2}{\mathrm{d}t^2}\!\left(\frac{\int \mathbf{r}\, \mathrm{d}m}{m}\right) = \sum_{j=1}^n \mathbf{f}_{j,\mathrm{external}}.

The expression \frac{\int \mathbf{r}\, \mathrm{d}m}{m} is the formula for the position of the centre of mass. Denoting this by rcm, the equation reduces to



 m \frac{\mathrm{d}^2 \mathbf{r}_\mathrm{cm}}{\mathrm{d}t^2} = \sum_{j=1}^n \mathbf{f}_{j,\mathrm{external}}.

Thus, linear momentum equations can be extended to rigid bodies by denoting that they describe the motion of the centre of mass of the body. This is known as Euler's first law.




Download 349.66 Kb.

Share with your friends:
1   2   3   4   5   6   7   8   9   10




The database is protected by copyright ©ininet.org 2024
send message

    Main page