Presentation is loading. Please wait.

Presentation is loading. Please wait.

Physically Based Animation and Modeling

Similar presentations


Presentation on theme: "Physically Based Animation and Modeling"— Presentation transcript:

1 Physically Based Animation and Modeling
CSE 3541/5541 Matt Boggus

2 Overview Newton’s three laws of physics
Formulas for updating kinematic values Particle Systems Common forces in physically based animation

3 Summary of Newton’s laws
Forces relate to acceleration F = ma With acceleration, integrate to update velocity and position Clients will specify object masses and forces acting on the objects in the scene

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

5 Physics review, equations for: Zero acceleration Constant acceleration
No acceleration Constant acceleration f a m Similarly, you’d need a different equation to handle cases where acceleration is linear, quadratic, or some other higher order. a v’ v vave

6 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 ]

7 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 + 𝑒𝑛𝑑𝑣+𝑣 2 ∗dt [vectors: x, endv, v scalars: 2, dt] v = endv [vectors: endv, v]

8 See spreadsheet example
Comparison of methods See spreadsheet example

9 Particle Systems Star Trek 2 – genesis sequence (1982) More examples
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 Show star trek example, others for reference

10 Particle Example source
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 source Particle’s birth: constrained and time with initial color and shading (also randomized)

11 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 vary “new” particles

12 Constrained randomization example 1
particleX = x particleY = y particleX = x + random(-1,1) particleY = y + random(-1,1)

13 Constrained randomization example 2
particleX = x + random(-1,1) particleY = y + random(-1,1) if (sqrt( (particleX-x)2 + (particleY-y)2 ) ) > 1, re-randomize

14 Particle (partial example)
class Particle { Vector3 velocity; // updates frame to frame Vector3 force; // reset and recomputed each frame GameObject particle; // updates frame to frame // holds position and mesh // other fields for mass, currentlife, maxlife, etc. public: void Update(float deltaTime); // numeric integration to // update velocity and position void ApplyForce(Vector3 f) { force = force + f; } void ResetForce() { force = Vector3.zero; } // other methods for collision response, life increment, etc. };

15 Particle emitter (partial example)
using System.Collections.Generic; using System.Collections; class ParticleEmitter : MonoBehaviour { IList <Particle> Particles = new List<Particle>(); // construct particle objects in Start(); // move and collision test particles in Update(); };

16 Particle Emitter Update() only showing physics movement code
Update(float deltaTime) { foreach (Particle p in Particles) { // sum up all forces acting on p // includes “always-on” forces like gravity // may include “one-shot” forces from events like collisions } foreach (Particle p in Particles){ p.Update(deltaTime); p.ResetForce();

17 Creating GameObjects (reminder)
for(int i = 0; i < numberOfAsteroids; i++){ GameObject aSphere = 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)); } Covered early, provided again here for reference

18 Deleting GameObjects (reminder)
GameObject myParticle; // …create, animate, etc. … Destroy(myParticle); Covered early, provided again here for reference Note: this affects the associated GameObject; it does not delete the variable myParticle

19 Lab3 Implement a particle system where each particle is a GameObject
For added challenge, have each particle be a vertex in one deformable mesh Restrictions No RigidBodies No Colliders Minimal credit if you use these for lab3

20 Computing forces for games and animations
Types Independent of other values Gravity on earth Dependent on current object properties velocity – drag position – spring force Dependent on other objects Penalty method collision response Gravity in space

21 Forces – gravity Applying gravity for a scene on earth – one vector with negative y value Applying gravity for a

22 “Opposing” Forces Static friction Kinetic friction Viscosity
for small objects No turbulence For sphere

23 “Opposing” Forces – made simple
Force = -1 * velocity * scale typically, 0 < scale < 1

24 Forces – spring-damper
Hooke’s Law

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

26 Spring-mass-damper system
f -f

27 Spring-mass-damper system
At rest length l, the force f is zero Two objects are located at r1 and r2 [scalar displacement] [direction of displacement]

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

29 Penalty method Spring force as collision response

30 Additional slides

31 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

32 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

33 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) Force = change in momentum over time = mass * acceleration

34 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?

35 “Opposing” Forces – can be complex
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 Included for presentation effect – don’t have time to go through details on terms here

36 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

37 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

38 Cloth simulation – springs, integration, and stability
Cloth Sim with Euler Integrator Animation begins using Verlet integration Animation ends using Euler integration


Download ppt "Physically Based Animation and Modeling"

Similar presentations


Ads by Google