Baraff, 1991 Animation CS 551 / 651 Lecture 4 Rigid-body Simulation Physical Simulation References • Physics for Game Developers (Bourg) • Chris Hecker Game Developer articles – http://www.d6.com/users/checker/dynamics.htm Equations of Motion The physics-based equations that define how objects move • Gravity • Turbulence • Contact forces with objects • Friction • Joint constraints Why is this a graphics problem? Physics gives us a lot • Analytical methods for computing movements of objects in idealized environments There’s a lot missing • Everything on a computer is discrete – Positions and velocities are discrete – Time is discrete • Accurate modeling of friction, collisions, constrained motion • Simulating so it is “good enough” Why is this a graphics problem? Unpredictable situations are not generalizable • Computations with small & large numbers is tough – Small numbers go to zero – Large numbers go to NaN • Collisions of so many varieties (special cases) – Edge-edge, edge-face, face-face, vertex-vertex Unique features of graphics • Discretization introduces errors • Graphics representations are frequently polygonal Equations of Motion Current State Equations of Motion Position and velocity Integrate Forces Integrate Velocities Accelerations Integrate Equations of Motion Linear motions: r (t ) v(t )dt v(t ) a (t )dt Example: • Constant acceleration of 5 m/s2 v(t ) a dt 5dt 5t C v(0) 5(0) C v0 C v(t ) 5t v0 5 2 r (t ) v(t )dt 5t v0 dt t v0t r0 2 Linear Momentum Mass times velocity = linear momentum, p p mv Newton’s Second Law dp d (mv ) F p mv ma dt dt Ceasing to identify vectors… Rigid Bodies Imagine a rigid body as a set of point masses Total momentum, pT, is sum of momentums of all i i points: p T mv i Center of Mass (CM) is a single point. Vector to CM CM r is linear combination of vectors to all points in rigid body weighted by their masses, divided by total mass of body m r i i i M Total Momentum Rewrite total momentum in terms of CM i i CM d ( m r ) d ( Mr ) T i i p m v dt dt i i Total linear momentum equals total mass times the velocity of the center of mass (For continuous rigid bodies, all summations turn into integrals over the body, but CM still exists) We can treat all bodies as single point mass and velocity Total Force Total force is derivative of the total momemtum • Again, CM simplifies total force equation of a rigid body F p Mv T T CM Ma CM • We can represent all forces acting on a body as if their vector sum were acting on a point at the center of mass with the mass of the entire body Intermediate Results • Divide a force by M to find acceleration of the center of mass • Integrate acceleration over time to get the velocity and position of body • Note we’ve ignored where the forces are applied to the body • In linear momentum, we don’t keep track of the angular terms and all forces are applied to the CM. Ordinary Differential Equations Solving for a function satisfying an equation containing one or more derivatives of an unknown variable • Derivatives of the dependent variable • Dependent variable • Independent variable dv v a dt m v’s derivative is a function of its current value Ordinary refers to ordinary derivatives • As opposed to partial derivatives Integrating ODEs Analytically solving ODEs is complicated Numerically integrating ODEs is much easier (in general) • Euler’s Method • Runge-Kutta Euler’s Method Based on calculus definition of first derivative = slope Euler’s Method Use derivative at time n to integrate h units forward dyn yn 1 yn h dx Euler Errors Depending on ‘time step’ h, errors will accumulate SIGGRAPH Course Notes Accumulating Errors SIGGRAPH Course Notes Recap Angular Effects Let’s remain in 2-D plane for now In addition to kinematic variables • x, y positions Add another kinematic variable • W angle • CCW rotation of object axes relative to world axes Angular Velocity w is the angular velocity d W dw w a 2 dt dt 2 a is the angular acceleration Computing Velocities How do we combine linear and angular quantities? Consider velocity of a point, B, of a rigid body rotating about its CM v wr B OB r_perp is perpendicular to r vector from O to B Velocity is w-scaled perpendicular vector from origin to point on body v o r More Details Point B travels W radians Point B travels C units Radius of circle is r C= Wr • By definition of radians, where circumference = 2pr B’s speed (magnitude of velocity vector) • Differentiate C= Wr w.r.t. time d (Wr ) dW r wr dt dt More Details The direction of velocity is tangent to circle == perpendicular to radius Therefore, linear velocity is angular velocity multiplied by tangent vector Chasles’ Theorem Any movement is decomposed into: • Movement of a single point on body • Rotation of body about that point Linear and Angular Components v v wr B O OB Angular Momentum The angular momentum of point B about point A (we always measure angular terms about some point) It’s a measure of how much of point B’s linear momentum is rotating around A AB L r AB p B Angular Momentum Check: If linear momentum, pB, is perpendicular to r_perp, then dot product of two will cause angular momentum will be zero Torque Derivative of Angular Momentum • Remember force was derivative of linear momentum AB B ) AB dL d (r p dt dt AB AB B r ma r F B • This measures how much of a force applied at point B is used to rotate about point A, the torque Total Angular Momentum Total angular momentum about point A is denoted LAT Ai i AT L r p i r m i v i Ai i But computation can be expensive to sample all points Sampling of a surface would require surface integration Moment of Inertia LAT r p i Ai i substitute r m i v i v wr B OB Ai i Remember • An alternate way of representing the velocity of a point in terms of angular velocity If A is like the origin i is like B, then substitute AT L r m wr Ai i Ai i w m r r i Ai Ai i w m (r ) i i wI A Ai 2 Moment of Inertia, IA The sum of squared distances from point A to each other point in the body, and each squared distance is scaled by the mass of each point Ai 2 i A m (r ) I i This term characterizes how hard it is to rotate something Total Torque Differentiate total angular momentum to get total torque AT dLAT d ( I Aw ) dt I Aw I Aa This relates total torque and the body’s angular acceleration through the scalar moment of inertia Planar Dynamics • Calculate COM and MOI of rigid body • Set initial position and linear/angular velocities • Figure out all forces and their points of application • Sum all forces and divide by mass to find COM’s linear acceleration • For each force, compute perp-dot-product from COM to point of force application and add value into total torque of COM • Divide total torque by the MOI at the COM to find angular acceleration • Numerically integrate linear/angular accelerations to update the position/orientation and linear/angular velocities • Draw body in new position and repeat Constrained Dynamics - 1996 Rube Goldberg - 1989 Collisions - 1990 Deformations (1992) Upcoming Topics Collisions 3-dimensional rigid bodies (inertia tensors) Forces (centripetal, centrifugal, viscosity, friction, contact) Constrained dynamics (linked bodies)