Physically based animation

Last updated

Physically based animation is an area of interest within computer graphics concerned with the simulation of physically plausible behaviors at interactive rates. Advances in physically based animation are often motivated by the need to include complex, physically inspired behaviors in video games, interactive simulations, and movies. Although off-line simulation methods exist to solve most all of the problems studied in physically-based animation, these methods are intended for applications that necessitate physical accuracy and slow, detailed computations. In contrast to methods common in offline simulation, techniques in physically based animation are concerned with physical plausibility, numerical stability, and visual appeal over physical accuracy. Physically based animation is often limited to loose approximations of physical behaviors because of the strict time constraints imposed by interactive applications. The target frame rate for interactive applications such as games and simulations is often 25-60 hertz, with only a small fraction of the time allotted to an individual frame remaining for physical simulation. Simplified models of physical behaviors are generally preferred if they are more efficient, easier to accelerate (through pre-computation, clever data structures, or SIMD/GPGPU), or satisfy desirable mathematical properties (such as unconditional stability or volume conservation when a soft body undergoes deformation). Fine details are not important when the overriding goal of a visualization is aesthetic appeal or the maintenance of player immersion since these details are often difficult for humans to notice or are otherwise impossible to distinguish at human scales. [1]

Contents

History

Physically based animation is now common in movies and video games, and many techniques were pioneered during the development of early special effects scenes and game engines. Star Trek II: The Wrath of Khan famously used particle systems in the Genesis explosion scene to create the visual effect of a flaming shockwave engulfing a planet. [2] Despite being released before physics engines were a common feature in games, System Shock incorporated rigid body physics in its engine and was widely considered innovative for this feature and the novel sense of interaction it afforded players. Valve later developed Half-Life and used rigid body physics to create environmental puzzles for the player, such as obstacles that could not be reached without stacking boxes. Half-Life 2 featured a more advanced physics engine that incorporated constrained systems such as pulleys or levers with more environmental puzzles to showcase these features. Physics engines are now much more common in games, and their frequent appearance has motivated research in physically based animation by companies such as Nvidia.

Physically based animation in games and simulations

Physically based animation is common in games and simulations where users have the expectation of interaction with the environment. Physics engines such as Havok, PhysX, and Bullet exist as separately developed products to be licensed and included in games. In games such as Angry Birds or World of Goo , physically based animation is itself the primary game mechanic and players are expected to interact with or create physically simulated systems in order to achieve goals. Aspects of physics puzzle games exist in many games that belong to other genres but feature physically based simulation. Allowing physical interaction with the environment through physically based animation promotes non-linear solutions to puzzles by players, and can sometimes results in solutions to problems presented in games that were not deliberately included by level designers. Simulations used for purposes other than entertainment, such as military simulations, also make use of physically based animation to portray realistic situations and maintain the immersion of users. Many techniques in physically based animation are designed with GPGPU implementations in mind or can otherwise be extended to benefit from graphics hardware, which can be used to make physically based simulations fast enough for gaming. GPU time is often reserved for rendering, however, and frequent data transfers between the host and device can easily become a bottleneck to performance.

Physically based animation in movies

Simulations can be performed offline (as in apart from when they are viewed) in the development of special effects for movies. Speed is therefore not strictly a necessity in the production of special effects but is still desirable for reasonably responsive feedback and because the hardware required for slower methods is more expensive. However, physically based animation is still preferred because slower, more accurate methods can be costly and limiting. The physical accuracy of small details in a special effect are not meaningful to their visual appeal, restrict the amount of control that artists and directors can exert over behavior, and increase the monetary cost and time required to achieve results. It is necessary to be able to dictate the high level behavior of physically inspired effects in movies in order to achieve a desired artistic direction, but scripting physical behaviors on the level of small details can be unfeasible when fluids, smoke, or many individual objects are involved. Physically based animation generally affords more artist control over the appearance of simulated results and is also more convenient when desired effects might bend or defy physics.

Sub Topics

Rigid Body Simulation

Simplified rigid body physics is relatively cheap and easy to implement, which is why it appeared in interactive games and simulations earlier than most other techniques. Rigid bodies are assumed to undergo no deformation during simulation so that rigid body motion between time steps can be described as a translation and rotation, traditionally using affine transformations stored as 4x4 matrices. Alternatively, quaternions can be used to store rotations and vectors can be used to store the objects offset from the origin. The most computationally expensive aspects of rigid body dynamics are collision detection, correcting interpenetration between bodies and the environment, and handling resting contact. Rigid bodies are commonly simulated iteratively, with back-tracking to correct error using smaller timesteps. Resting contact between multiple rigid bodies (as is the case when rigid bodies fall into piles or are stacked) can be particularly difficult to handle efficiently and may require complex contact and shock propagation graphs in order to resolve using impulse-based methods. When simulating large numbers of rigid bodies, simplified geometries or convex hulls are often used to represent their boundaries for the purpose of collision detection and response (since this is generally the bottleneck in simulation).

Soft Body Simulation

Soft bodies can easily be implemented using spring-mesh systems. Spring mesh systems are composed of individually simulated particles that are attracted to each other by simulated spring forces and experience resistance from simulated dampeners. Arbitrary geometries can be more easily simulated by applying spring and dampener forces to the nodes of a lattice and deforming the object with the lattice. However, explicit solutions to these systems are not very numerically stable and are extremely difficult to control the behavior of through spring parameters. Techniques that allow for physically plausible and visually appealing soft bodies, are numerically stable, and can be configured well by artists were prohibitively expensive in early gaming history, which is why soft bodies were not as common as rigid bodies. Integration using Runge-Kutta methods can be used to increase the numerical stability of unstable techniques such as spring meshes or finer time steps can be used for simulation (although this is more costly and cannot make spring meshes stable for arbitrarily large forces). Techniques such as shape matching and position based dynamics address these problems with interactive games and simulations in mind. Position based dynamics is used in mainstream game engines such as Bullet (software), Havok, and PhysX. [3] [4] Unconditional stability and ease of configuration are particularly desirable properties of soft body simulations that can be difficult to achieve with spring-mesh systems, although they are still often used in games because of their simplicity and speed.

Fluid Simulation

Computational fluid dynamics can be expensive, and interactions between multiple fluid bodies or with external objects/forces can require complex logic to evaluate. Fluid simulation is generally achieved in video games by simulating only the height of bodies of water to create the effect of waves, ripples, or other surface features. For relatively free bodies of liquid, Lagrangian or semi-Lagrangian methods are often used to speed up the simulation by treating particles as finite elements of fluid (or carriers of physical properties) and approximating the Navier-Stokes equations . [5] [6] It is uncommon to simulate bodies of fluid in games, although surface features may be simulated using similar methods and fluid simulations may be used to generate textures or height-fields to render water in real-time without real-time simulation (this is commonly done for large bodies of water in games). Fluid simulations can be computed using commodity graphics hardware through GPGPU, and height fields can be efficiently computed that result in wave-like behavior using Lattice Boltzmann methods. [7] Alternatively, surface features and waves can be simulated as particles and a height field generated from the simulated particles in real-time. This also allows for efficient two way interaction between the fluid and floating objects. [8]

Particle Systems

Particle systems are an extremely popular technique for creating visual effects in movies and games because of their ease of implementation, efficiency, extensibility, and artist control. The update cycle of particle systems usually consists of the three phases: generation, simulation, and extinction. These phases respectively consist of the introduction of new particles, simulating them through the next timestep, and removing particles that have exceeded their life-span. The physical and visual attributes of particles are usually randomized on generation with the range and distribution of attributes controlled by the artist. Particle systems can further be made to generate particle systems themselves to create more complex and dynamic effects, and their high-level behavior can be choreographed through a framework of operators as in the canonical Sims paper. [9] Early games that rendered systems of particles suffered from clipping artifacts when particles partially intersected geometry in the environment, and this artifact was especially noticeable for large particles (which were often used to stand in for smoke). Soft particles address these artifacts through careful shading and manipulation of the transparency of particles, such that particles become more transparent as they approach surfaces.

Flocking

In physically based animation, flocking refers to a technique that models the complex behavior of birds, schools of fish, and swarms of insects using virtual forces. These virtual forces simulate the tendency for flocks to center their velocities, avoid collisions and crowding, and move toward the group. In these simulations, individual members of the flock (sometimes called boids, short for bird-oid) act without collaboration using only information about the position and velocity of their peers to create the illusion of synchronized, group behavior efficiently. [10] Flocking can be used to efficiently approximate the behavior of crowds of humans as well, and methods based on flocking are often used for crowds of NPCs in gaming. Unreal and Half-Life were among the first games to implement flocking, which was used to model the behavior of birds and flying creatures present in outdoor levels.

Physically Based Character Animation

Characters in games and simulations are traditionally animated through methods such as keyframing that define animations through compositions of smaller, static motions sequenced to convey more complex behavior. Visually, these static methods cannot easily convey complex interactions with the environment and make lifelike character motion difficult to accomplish. Techniques in physically based character animation achieve dynamic animations that respond to user interaction, external events, and the environment by optimizing motions toward specified goals given physically based constraints such as energy minimization. [11] The adoption of physically based character animation, as opposed to more static methods, has been slow in the gaming industry due to the increased cost and complexity associated with its use. Physically based character animation has been used in the Skate (video game) series of video games, and in the independently developed first-person shooter StarForge.

Related Research Articles

<span class="mw-page-title-main">Molecular dynamics</span> Computer simulations to discover and understand chemical properties

Molecular dynamics (MD) is a computer simulation method for analyzing the physical movements of atoms and molecules. The atoms and molecules are allowed to interact for a fixed period of time, giving a view of the dynamic "evolution" of the system. In the most common version, the trajectories of atoms and molecules are determined by numerically solving Newton's equations of motion for a system of interacting particles, where forces between the particles and their potential energies are often calculated using interatomic potentials or molecular mechanical force fields. The method is applied mostly in chemical physics, materials science, and biophysics.

<span class="mw-page-title-main">Particle system</span> Technique in game physics, motion graphics and computer graphics

A particle system is a technique in game physics, motion graphics, and computer graphics that uses many minute sprites, 3D models, or other graphic objects to simulate certain kinds of "fuzzy" phenomena, which are otherwise very hard to reproduce with conventional rendering techniques – usually highly chaotic systems, natural phenomena, or processes caused by chemical reactions.

<span class="mw-page-title-main">Scientific visualization</span> Interdisciplinary branch of science concerned with presenting scientific data visually

Scientific visualization is an interdisciplinary branch of science concerned with the visualization of scientific phenomena. It is also considered a subset of computer graphics, a branch of computer science. The purpose of scientific visualization is to graphically illustrate scientific data to enable scientists to understand, illustrate, and glean insight from their data. Research into how people read and misread various types of visualizations is helping to determine what types and features of visualizations are most understandable and effective in conveying information.

Dynamical simulation, in computational physics, is the simulation of systems of objects that are free to move, usually in three dimensions according to Newton's laws of dynamics, or approximations thereof. Dynamical simulation is used in computer animation to assist animators to produce realistic motion, in industrial design, and in video games. Body movement is calculated using time integration methods.

<span class="mw-page-title-main">Ragdoll physics</span> Type of procedural animation used by physics engines

Ragdoll physics is a type of procedural animation used by physics engines, which is often used as a replacement for traditional static death animations in video games and animated films. As computers increased in power, it became possible to do limited real-time physical simulations, which made death animations more realistic.

<span class="mw-page-title-main">Crowd simulation</span> Model of movement

Crowd simulation is the process of simulating the movement of a large number of entities or characters. It is commonly used to create virtual scenes for visual media like films and video games, and is also used in crisis training, architecture and urban planning, and evacuation simulation.

<span class="mw-page-title-main">Houdini (software)</span> 3D animation software

Houdini is a 3D animation software application developed by Toronto-based SideFX, who adapted it from the PRISMS suite of procedural generation software tools.

<span class="mw-page-title-main">Smoothed-particle hydrodynamics</span> Method of hydrodynamics simulation

Smoothed-particle hydrodynamics (SPH) is a computational method used for simulating the mechanics of continuum media, such as solid mechanics and fluid flows. It was developed by Gingold and Monaghan and Lucy in 1977, initially for astrophysical problems. It has been used in many fields of research, including astrophysics, ballistics, volcanology, and oceanography. It is a meshfree Lagrangian method, and the resolution of the method can easily be adjusted with respect to variables such as density.

<span class="mw-page-title-main">Physics engine</span> Software for approximate simulation of physical systems

A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics, soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film (CGI). Their main uses are in video games, in which case the simulations are in real-time. The term is sometimes used more generally to describe any software system for simulating physical phenomena, such as high-performance scientific simulation.

Computer animation physics or game physics are laws of physics as they are defined within a simulation or video game, and the programming logic used to implement these laws. Game physics vary greatly in their degree of similarity to real-world physics. Sometimes, the physics of a game may be designed to mimic the physics of the real world as accurately as is feasible, in order to appear realistic to the player or observer. In other cases, games may intentionally deviate from actual physics for gameplay purposes. Common examples in platform games include the ability to start moving horizontally or change direction in mid-air and the double jump ability found in some games. Setting the values of physical parameters, such as the amount of gravity present, is also a part of defining the game physics of a particular game.

<span class="mw-page-title-main">Soft-body dynamics</span> Computer graphics simulation of deformable objects

Soft-body dynamics is a field of computer graphics that focuses on visually realistic physical simulations of the motion and properties of deformable objects. The applications are mostly in video games and films. Unlike in simulation of rigid bodies, the shape of soft bodies can change, meaning that the relative distance of two points on the object is not fixed. While the relative distances of points are not fixed, the body is expected to retain its shape to some degree. The scope of soft body dynamics is quite broad, including simulation of soft organic materials such as muscle, fat, hair and vegetation, as well as other deformable materials such as clothing and fabric. Generally, these methods only provide visually plausible emulations rather than accurate scientific/engineering simulations, though there is some crossover with scientific methods, particularly in the case of finite element simulations. Several physics engines currently provide software for soft-body simulation.

Interactive skeleton-driven simulation is a scientific computer simulation technique used to approximate realistic physical deformations of dynamic bodies in real-time. It involves using elastic dynamics and mathematical optimizations to decide the body-shapes during motion and interaction with forces. It has various applications within realistic simulations for medicine, 3D computer animation and virtual reality.

Ronald Paul "Ron" Fedkiw is a full professor in the Stanford University department of computer science and a leading researcher in the field of computer graphics, focusing on topics relating to physically based simulation of natural phenomena and machine learning. His techniques have been employed in many motion pictures. He has earned recognition at the 80th Academy Awards and the 87th Academy Awards as well as from the National Academy of Sciences.

<span class="mw-page-title-main">Fluid animation</span> Computer graphics techniques for generating realistic animations of fluids

Fluid animation refers to computer graphics techniques for generating realistic animations of fluids such as water and smoke. Fluid animations are typically focused on emulating the qualitative visual behavior of a fluid, with less emphasis placed on rigorously correct physical results, although they often still rely on approximate solutions to the Euler equations or Navier–Stokes equations that govern real fluid physics. Fluid animation can be performed with different levels of complexity, ranging from time-consuming, high-quality animations for films, or visual effects, to simple and fast animations for real-time animations like computer games.

<span class="mw-page-title-main">Cloth modeling</span> Simulating cloth within a computer program

Cloth modeling is the term used for simulating cloth within a computer program, usually in the context of 3D computer graphics. The main approaches used for this may be classified into three basic types: geometric, physical, and particle/energy.

Dynamic simulation is the use of a computer program to model the time-varying behavior of a dynamical system. The systems are typically described by ordinary differential equations or partial differential equations. A simulation run solves the state-equation system to find the behavior of the state variables over a specified period of time. The equation is solved through numerical integration methods to produce the transient behavior of the state variables. Simulation of dynamic systems predicts the values of model-system state variables, as they are determined by the past state values. This relationship is found by creating a model of the system.

<span class="mw-page-title-main">RealFlow</span> Software

RealFlow is a fluid and dynamics simulation tool for the 3D and visual effects industry, developed by Next Limit Technologies in Madrid, Spain. This stand-alone application can be used in conjunction with other 3D programs to simulate fluids, water surfaces, fluid-solid interactions, rigid bodies, soft bodies and meshes. In 2008, Next Limit Technologies was awarded a Technical Achievement Award by the Academy of Motion Picture Arts and Sciences for their development of the RealFlow software and its contribution to the production of motion pictures. In 2015, Next Limit Technologies announced the release of RealFlow Core for Cinema 4D.

The material point method (MPM) is a numerical technique used to simulate the behavior of solids, liquids, gases, and any other continuum material. Especially, it is a robust spatial discretization method for simulating multi-phase (solid-fluid-gas) interactions. In the MPM, a continuum body is described by a number of small Lagrangian elements referred to as 'material points'. These material points are surrounded by a background mesh/grid that is used to calculate terms such as the deformation gradient. Unlike other mesh-based methods like the finite element method, finite volume method or finite difference method, the MPM is not a mesh based method and is instead categorized as a meshless/meshfree or continuum-based particle method, examples of which are smoothed particle hydrodynamics and peridynamics. Despite the presence of a background mesh, the MPM does not encounter the drawbacks of mesh-based methods which makes it a promising and powerful tool in computational mechanics.

<span class="mw-page-title-main">Lubachevsky–Stillinger algorithm</span> Computational physics simulation algorithm

Lubachevsky-Stillinger (compression) algorithm is a numerical procedure suggested by F. H. Stillinger and Boris D. Lubachevsky that simulates or imitates a physical process of compressing an assembly of hard particles. As the LSA may need thousands of arithmetic operations even for a few particles, it is usually carried out on a computer.

<span class="mw-page-title-main">Virtual human</span> Computer simulation of a person

A virtual human is a software fictional character or human being. Virtual human have been created as tools and artificial companions in simulation, video games, film production, human factors and ergonomic and usability studies in various industries, clothing industry, telecommunications (avatars), medicine, etc. These applications require domain-dependent simulation fidelity. A medical application might require an exact simulation of specific internal organs; film industry requires highest aesthetic standards, natural movements, and facial expressions; ergonomic studies require faithful body proportions for a particular population segment and realistic locomotion with constraints, etc.

References

  1. Baraff; Witkin (1999). "Physically Based Modeling Course Notes". Siggraph. Course 36.
  2. Reeves, W. "Particle Systems - A technique for modeling a class of fuzzy objects" (PDF). ACM Transactions on Graphics.
  3. Müller, M.; B. Heidelberger; M. Hennix; J. Ratcliff (2006). "Position Based Dynamics" (PDF). Proceedings of Virtual Reality Interactions and Physical Simulations (VRIPhys).
  4. Müller, M.; B. Heidelberger; M. Teschner; M. Gross (2005). "Meshless deformations based on shape matching". ACM Transactions on Graphics. 24 (3): 471–478. doi:10.1145/1073204.1073216.
  5. Foster; Metaxas (1996). "Realistic Animation of Liquids" (PDF). Graphical Models and Image Processing. 58 (5): 471–483. doi:10.1006/gmip.1996.0039.
  6. Stam, J. (1999). "Stable Fluids" (PDF). Siggraph.
  7. Geist, Robert; Christopher Corsi; Jerry Tessendorf; James Westall (2010). "Lattice-Boltzmann Water Waves" (PDF). ISVC.[ dead link ]
  8. Yuksel, Cem; Donald House; John Keyser (2007). "Wave particles" (PDF). ACM Transactions on Graphics. 26 (3): 99. doi:10.1145/1276377.1276501.
  9. Sims, Karl (August 1990). "Particle Animation and Rendering Using Data Parallel Computation" (PDF). Computer Graphics. 4. 24 (4): 405–413. doi:10.1145/97880.97923.
  10. Reynolds, C. (1989). "Flocks, herds and schools: A distributed behavioral model". Siggraph.
  11. Geijtenbeek, T.; N. Pronost; A. Egges; and M.H. Overmars (2011). "Interactive Character Animation using Simulated Physics" (PDF). Eurographics.