1 / 32

Physically Based Animation and Modeling

Physically Based Animation and Modeling. CSE 3541 Matt Boggus. Overview. Newton’s three laws of physics Integrating acceleration to find position Particle Systems Common forces in physically based animation. Mass and Momentum.

tryna
Télécharger la présentation

Physically Based Animation and Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Physically Based Animation and Modeling CSE 3541 Matt Boggus

  2. Overview • Newton’s three laws of physics • Integrating acceleration to find position • Particle Systems • Common forces in physically based animation

  3. Mass and Momentum • Associate a mass with an object. We assume that the mass is constant • Define a vector quantity called momentum (p), which is the product of mass and velocity

  4. Newton’s First Law • A body in motion will remain in motion • A body at rest will remain at rest, unless acted upon by some force • Without a force acting on it, a moving object travels in a straight line

  5. Newton’s Second Law • Newton’s Second Law says: • This relates the kinematic quantity of acceleration to the physical quantity of force (Kinematics – the branch of mechanics concerned with the motion of objects without reference to the forces that cause the motion)

  6. Newton’s Third Law • Newton’s Third Law says that any force that body A applies to body B will be met by an equal and opposite force from B to A • Every action has an equal and opposite reaction • Do we really want this for games and animation?

  7. Integration Given acceleration, compute velocity & position by integrating over time

  8. a f v’ a Physics review, equations for: Zero acceleration Constant acceleration Constant acceleration No acceleration m v vave

  9. Pseudocode for motion within an animation loop (Euler method) To update an object at point x with velocity v: a = (sum all forces acting on x) / m [ ∑vectors scalar: m ] v = v + a * dt [ vectors: v, a scalar: dt ] x = x + v * dt[ vectors: x, v scalar: dt ]

  10. Pseudocode for motion within an animation loop (Euler 2) To update an object at point x with velocity v: a = (sum all forces acting on x) / m[ ∑vectors scalar: m ] endv = v + a * dt[vectors: endv, v, a scalar: dt] x = x + [vectors: x, endv, v scalars: 2, dt] v = endv[vectors: endv, v]

  11. Comparison of methods See spreadsheet example

  12. Particle Systems • A collection of a large number of point-like elements • Model “fuzzy” or “fluid” things • Fire, explosions, smoke, water, sparks, leaves, clouds, fog, snow, dust, galaxies, special effects • Model strands • Fur, hair, grass • Star Trek 2 – genesis sequence(1982) • The making of the scene • More examples

  13. Particle Systems Lots of small particles - local rules of behavior Create ‘emergent’ element Common rules for particle motion: Do collide with the environment Do not collide with other particles Common rules for particle rendering: Do not cast shadows on other particles Might cast shadows on environment Do not reflect light - usually emit it

  14. Particle Example Collides with environment but not other particles Particle’s midlife with modified color and shading Particle’s demise, based on constrained and randomized life span Particle’s birth: constrained and time with initial color and shading (also randomized) source

  15. Particle system implementation • Update Steps • for each particle • if dead, reallocate and assign new attributes • animate particle, modify attributes • render particles Use constrained randomization to keep control of the simulation while adding interest to the visuals

  16. Constrained randomization particleX = x particleY = y particleX = x + random(-1,1) particleY = y + random(-1,1)

  17. Particle (partial example in C#) class Particle { Vector3 position; // Updates frame to frame Vector3 velocity; // Updates frame to frame Vector3 force; // Reset and recomputed each frame GameObjectgeom; // other variables for mass, lifetime, … public: void Update(float deltaTime); void ApplyForce(Vector3 &f) { force.Add(f); } void ResetForce() { force = Vector3.zero; } // other methods… };

  18. Particle emitter (partial example in C#) using System.Collections.Generic; using System.Collections; class ParticleEmitter { ArrayListParticles = new ArrayList(); public: void Update(deltaTime); };

  19. Particle Emitter Update() Update(float deltaTime) { foreach(Particle p in Particles) { // …add up all forces acting on p… } foreach(Particle p in Particles){ p.Update(deltaTime); p.ResetForce(); } }

  20. Creating GameObjects for(inti = 0; i < numberOfAsteroids; i++){ GameObjectaSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); aSphere.transform.parent= transform; aSphere.name = "sphere" + i.ToString(); aSphere.transform.position= new Vector3(Random.Range(-10.0f, 10.0f), Random.Range(-10.0f, 10.0f), Random.Range(-10.0f, 10.0f)); aSphere.transform.localScale= new Vector3(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f)); }

  21. Deleting GameObjects GameObjectmyParticle; // …create, animate, etc. … Destroy(myParticle); Note: this affects the associated GameObject; it does not delete the variable myParticle

  22. Lab3 • Implement a particle system where each particle is a GameObject • Restrictions • No RigidBodies • No Colliders • Minimal credit if you use these for lab3

  23. Forces – gravity

  24. Static friction Kinetic friction Viscosity for small objects No turbulence For sphere Forces

  25. Forces • Aerodynamic drag is complex and difficult to model accurately • A reasonable simplification it to describe the total aerodynamic drag force on an object using: • Where ρ is the density of the air (or water, mud, etc.), cd is the coefficient of drag for the object, a is the cross sectional area of the object, and e is a unit vector in the opposite direction of the velocity • In short – create a scaled vector in the opposite direction of velocity

  26. Forces – spring-damper Hooke’s Law

  27. Damping example Animation from http://www.acs.psu.edu/drussell/Demos/SHO/damp.html

  28. Spring-mass-damper system f -f

  29. Springs • At rest length l, the force f is zero • Points are located at r1 and r2 [scalar displacement] [direction of displacement]

  30. Spring-mass system V3 E23 E31 V2 V1 E12 Example – Jello cube http://www.youtube.com/watch?v=b_8ci0ZW4vI

  31. Spring mesh – properties for cloth Each vertex is a point mass Each edge is a spring-damper Diagonal springs for rigidity Angular springs connect every other mass point Global forces: gravity, wind Example http://www.youtube.com/watch?v=ib1vmRDs8Vw

  32. Virtual springs – soft constraints

More Related