Real-time Physics Round-up
Revised Schedule of Demos TUESDAY 06/03 Session #1 (11-1pm) Session #2 (2-3pm) Name Time Name Time Name Time 11:30 13:00 Shane Jan 11:40 13:10 Carlos Stephen 11:50 13:20 Dermot Darragh 12:00 13:30 Andy Siddiqur 12:10 13:40 Kevin Dariaus 12:20 13:50 Colin Gianluca 12:30 14:00 Owen Jeff W 12:40 14:10 Brendan Rick 12:50 14:20 Gavin Luis 14:30 Geoff K Please note Small changes (in red) 14:40 Marco due to a Postgraduate Committee meeting scheduled before this
Finite Element Simulation
Mass spring Pros: Easy to implement Reasonable fast Some problems: Lack of correct preservation of volume Behaviour is heavily dependent on mesh topology and choice of springs
Finite Element Simulation A more physically accurate approach – popular technique in physics and engineering Employs finite element method to solve the partial differential equations which govern the dynamics of an elastic material Objects are modelled as a three-dimensional elastic continuum by breaking it into a large number of solid elements which fit together, and solving for the stresses and strains in each element using a model of the material. Pixelux use a finite-element-based approach for DMM, using a tetrahedral mesh
Pixelux Demo, Parker & O’Brien 2009 Some impressive FEM based effects used in Force Unleashed in their 2009 paper at SCA. This is a great example of cutting edge research deployed in a game. Video and paper: http://graphics.eecs.berkeley.edu/site_root/papers/Parker-RTD-2009-08/ Eric G. Parker and James F. O'Brien. " Real-Time Deformation and Fracture in a Game Environment ". In Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation , pages 156 – 166, August 2009.
Continuum mechanics Branch of physics that studies the behavior of materials modeled as a continuum Solid: There exists some equilibrium state /rest position for the body Characterised by Elasticity / Plasticity Fluids: Characterised by Viscosity
Deformable properties Stress within a solid object is the Magnitude of force applied on an object divided by the surface area over which it acts Has units of pressure Strain is the fractional deformation caused by stress Elasticity : Tendency of a body to return to its original shape after the forces causing deformation are removed Opposite of plasticity : tendency to undergo permanent deformation due to forces
Hooke’s Law in a bit more detail Hooke’s Law: Extension of spring is directly propotional to the load placed on it f = -k x Can be rewritten Force per area applied is proportional to its relative Where is the applied stress elongation and the resulting strain E: elasticisty tensor N/m 2 defined by young’s modulus
Measuring Deformations An object in its equilibrium Deform geometry from its configuration is defined as a original configuration connected subset M of 3 . Coordinates x є M of a point on the object are called material co- ordinates of the point When object deforms, points move to p ( x ), the spatial world co-ordinates p (x,y,z) (x,y,z) u We can represent displacement vectors u ( x ) = p ( x ) – x u defines the displacement field
Rotation and translation are solid movements and not deformations – spatially constant displacement field Relative movement of point with respect to its neighbours
Strain The relative elongation (or compressed stretched compression) of the material in 3d A magnitude to measure deformation A function of the displacement field u ( x ) Not constant inside a body Derived from the spatial variation or spatial derivatives of the displacement field
Strain in 3D In 3D, the displacement function has 3 components N.b. A point getting compressed in one direction may be depressed in another Strain cannot be expressed as a single scalar but by a symmetric 3x3 matrix: Diagonal describes stretch Off-diagonals: shear
Strain in 3D Linear tensor Strain tensor Cauchy strain tensor Non linear tensor Invariant to translations Green tensor: Not invariant to rotations!!! Invariant to rigid body motions Linearization of Green Strain Where Gradient of displacement field:
Strain in 3D Green strain tensor vs. Cauchy strain tensor
Stress Describes forces acting inside object Stress is defined as a force per unit area: As with strain, represented by a 3x3 stress matrix: To get force per unit area with a specific plane defined by normal n:
Axioms of Continuum Mechanics 1. A material continuum remains continuum under the action of forces. 2. Stress and strain can be defined everywhere in the body. 3. Stress at a point is related to the strain and the rate of change of strain with respect to time at the same point. Stress at any point in the body depends only on the deformation in the immediate neighborhood of that point. The stress-strain relationship may be considered separately, though it may be influenced by temperature, electric charge, ion transport, etc.
Continuum Mechanics The full continuum model of a deformable object considers the equilibrium of a general body acted on by external forces. The object reaches equilibrium when its potential energy is at a minimum. The total potential energy P of a deformable system is P = - W where is the total strain energy of the deformable object, and W is the work done by external loads on the deformable object. In order to determine the shape of the object at equilibrium, both are expressed in terms of the object deformation, which is represented by a function of the material displacement over the object. The system potential reaches a minimum when d P w.r.t. displacement function is zero.
Continuum Mechanics What we need to solve is the momentum equation for a finite element within a continuum
Other Deformable Techniques
Shape Matching Match rest state to deformed state of a point cloud Replace energies by geometric constraints and forces by distances of current positions to goal positions Versatile and efficient (speed and memory)
Constraint-based Not to be forgotten, character animation is one of the most common instances of “deformable” object in games Not discussed here but essentially the physics boils down to a hierarchy of rigid bodies, held together with constraints Image (c) Francois Faure Geometric operations are used to associate the rigid body with the actual deforming rendered geometry E.g. Matrix palette skinning For more on constraints: see Baraff et al Siggraph Course Notes on PBM
Recommended Reading Matthias Muller ran a course on real-time Physics at Siggraph 2007 (included a segment by Jos Stam) The course notes provide an excellent review of Real-time Deformable Objects Supplemental Reading: http://www.matthiasmueller.info/realtimephysics/index.html In particular : Chapters 3, 4, and 5 Link to video of Matthias talk (slightly cut down): https://www.scss.tcd.ie/John.Dingliana/cs7057/muellertalk.mov
De Defor orma mable le ob object ct Col ollisi ision ons
Deformable Object Collision Detection Almost entirely separate problem from Rigid Bodies Different Data Structures Rigid body data structures usually cannot be computed on the fly strictly depend on the shape of the object Different techniques Different optimizations Different Granularity Self Intersections possible A typical feature of deformable objects: Dynamic change of topology and/or (from the point of view of a mesh) change of surface tesselation
Strategies Bounding volume hierarchies (AABB trees, OBB trees, sphere trees) Grids, either uniform (using hashing for memory efficiency) or hierarchical (e.g. Octree, kd-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.
Hierarchies Axis Aligned Bounding Boxes are the most used, because they are: Easiest to compute Easiest to check for interference They do not provide the best fitting volume, but this concept becomes a bit fuzzy for deformable objects Best fit : sphere Best fit : box The manner in which the bounding volumes is computed is the most notable difference among the various approaches
AABB Trees Problem statement : the surface of an object is tessellated with polygons The hierarchy of boxes can be quickly updated using the following property: Let Sm(R) be the smallest AABB of a region R and r1, r1 two regions. Sm ( Sm ( r ) Sm ( r )) Sm ( r r ) 1 2 1 2 The hierarchy is updated in O(n) time Note: this is not the same as rebuilding the hierarchy refitting rebuilding [Van Den Bergen 1998] Public domain library: http://www.win.tue.nl/~gino/solid/index.html
BD-Trees Bounded Deformation Tree, or BD- Tree, can perform collision detection with reduced deformable models at costs comparable to collision detection with rigid objects
BD-Tree Update Preprocess: Compute Bounding Box of leaves Compute parent BB in bottom-up order At Run Time – Refit Tree Refitting AABB takes constant time - Ten times faster than rebuilding it Refitted tree has more overlap
Recommend
More recommend