University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Particle Systems.

Slides:



Advertisements
Similar presentations
Physics: Principles with Applications, 6th edition
Advertisements

Interpolating curves.
Kinetics of Particles Impulse and Momentum.
Net Force.
Lecture 2. A Day of Principles The principle of virtual work d’Alembert’s principle Hamilton’s principle 1 (with an example that applies ‘em all at the.
Beams and Frames.
Manipulator Dynamics Amirkabir University of Technology Computer Engineering & Information Technology Department.
Physics Montwood High School R. Casao
PHY 301: MATH AND NUM TECH Chapter 6: Eigenvalue Problems 1.Motivation 2.Differential Equations 3.Other Equations.
Chapter 10 Angular momentum Angular momentum of a particle 1. Definition Consider a particle of mass m and linear momentum at a position relative.
1Notes. 2Heightfields  Especially good for terrain - just need a 2d array of heights (maybe stored as an image)  Displacement map from a plane  Split.
1Notes. 2 Triangle intersection  Many, many ways to do this  Most robust (and one of the fastest) is to do it based on determinants  For vectors a,b,c.
1Notes  Demetri Terzopoulos talk: Thursday, 4pm Dempster 310.
MAT 594CM S10Fundamentals of Spatial ComputingAngus Forbes Week 2 : Dynamics & Numerical Methods Goal : To write a simple physics simulation Topics: Intro.
ME 4135 Fall 2011 R. R. Lindeke, Ph. D. Robot Dynamics – The Action of a Manipulator When Forced.
Linear dynamic systems
Particle Systems 1 Adapted from: E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012.
1 Lecture #9 of 24 Test advice Review problems Moment of Inertia of disk w/ hole Line Integrals Energy conservation problems Others of interest Energy.
Manipulator Dynamics Amirkabir University of Technology Computer Engineering & Information Technology Department.
Modeling Fluid Phenomena -Vinay Bondhugula (25 th & 27 th April 2006)
Particle Systems Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University.
UNC Chapel Hill M. C. Lin Review Particle Dynamics (see transparencies in class)
Introduction to ROBOTICS
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology 3D Engines and Scene Graphs Spring 2012.
Spring Topic Outline for Physics 1 Spring 2011.
Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
Game Physics – Part IV Moving to 3D
Simple and basic dynamical ideas…..  Newton’s Laws  Pressure and hydrostatic balance  The Coriolis effect  Geostrophic balance  Lagrangian-Eulerian.
CS559: Computer Graphics Lecture 38: Animation Li Zhang Spring 2008 Slides from Brian Curless at U of Washington.
ME451 Kinematics and Dynamics of Machine Systems Numerical Solution of DAE IVP Newmark Method November 1, 2013 Radu Serban University of Wisconsin-Madison.
Robot Dynamics – Slide Set 10 ME 4135 R. R. Lindeke, Ph. D.
Spring Rigid Body Simulation. Spring Contents Unconstrained Collision Contact Resting Contact.
Physically Based Modeling Let physics take over!.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric surfaces.
Numerical Integration and Rigid Body Dynamics for Potential Field Planners David Johnson.
Large Steps in Cloth Simulation - SIGGRAPH 98 박 강 수박 강 수.
Computer Science Term 1, 2006 Tutorial 3 Assignment 4 – Special Effects.
Chapter 10 Rotation.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Ray Tracing.
Scientific Computing Numerical Solution Of Ordinary Differential Equations - Euler’s Method.
Lecture Fall 2001 Physically Based Animation Ordinary Differential Equations Particle Dynamics Rigid-Body Dynamics Collisions.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric Curves.
Advanced Computer Graphics Rigid Body Simulation Spring 2002 Professor Brogan.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Physics for Games Spring 2012.
CS559: Computer Graphics Lecture 36: Animation Li Zhang Spring 2008 Many slides from James Kuffner’s graphics class at CMU.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Affine Transformations.
What to Review for the Final Exam Physics I 1 st Semester
Module 10Energy1 Module 10 Energy We start this module by looking at another collision in our two inertial frames. Last time we considered a perfectly.
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Hierarchical Modeling.
CS274 Spring 01 Lecture 7 Copyright © Mark Meyer Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
Newton’s first and second laws Lecture 2 Pre-reading : KJF §4.3 and 4.4.
Game Technology Animation V Generate motion of objects using numerical simulation methods Physically Based Animation.
CS559: Computer Graphics Lecture 13: Hierarchical Modeling and Curves Li Zhang Spring 2010.
Work Done by a Constant Force The work done by a constant force is defined as the distance moved multiplied by the component of the force in the direction.
Get your software working before putting it on the robot!
CS559: Computer Graphics Lecture 26: Animation Li Zhang Spring 2010 Slides from Brian Curless at U of Washington.
Advanced Computer Graphics Rigid Body Simulation
Transfer Functions Convenient representation of a linear, dynamic model. A transfer function (TF) relates one input and one output: The following terminology.
Manipulator Dynamics 1 Instructor: Jacob Rosen
Lecture 4: Modeling Mechanical Systems
Lecture 36: Animation Li Zhang Spring 2008
Review Particle Dynamics (see transparencies in class) UNC Chapel Hill
Manipulator Dynamics 2 Instructor: Jacob Rosen
Review ODE Basics Particle Dynamics (see transparencies in class)
Review ODE Basics Particle Dynamics (see transparencies in class)
Hierarchical Modeling
Net Force.
Review ODE Basics Particle Dynamics (see transparencies in class)
GPAT – Chapter 7 Physics.
Presentation transcript:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Particle Systems

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 2 Reading Required: Witkin, Particle System Dynamics, SIGGRAPH ’97 course notes on Physically Based Modeling. Witkin and Baraff, Differential Equation Basics, SIGGRAPH ’01 course notes on Physically Based Modeling. Optional Hocknew and Eastwood. Computer simulation using particles. Adam Hilger, New York, Gavin Miller. “The motion dynamics of snakes and worms.” Computer Graphics 22: , 1988.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 3 What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g, gravity, heat convection, spring behaviors, …). Particle systems can be used to simulate all sorts of physical phenomena:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 4 Particle in a flow field We begin with a single particle with: Position, Velocity, Suppose the velocity is actually dictated by some driving function g: g(x,t) x y

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 5 Vector fields At any moment in time, the function g defines a vector field over x: How does our particle move through the vector field?

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 6 Diff eqs and integral curves The equation is actually a first order differential equation. We can solve for x through time by starting at an initial point and stepping along the vector field: This is called an initial value problem and the solution is called an integral curve. Start Here

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 7 Euler’s method One simple approach is to choose a time step,  t, and take linear steps along the flow: Writing as a time iteration: This approach is called Euler’s method and looks like: Properties: Simplest numerical method Bigger steps, bigger errors. Error ~ O(  t 2 ). Need to take pretty small steps, so not very efficient. Better (more complicated) methods exist, e.g., “Runge-Kutta” and “implicit integration.”

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 8 Particle in a force field Now consider a particle in a force field f. In this case, the particle has: Mass, m Acceleration, The particle obeys Newton’s law: The force field f can in general depend on the position and velocity of the particle as well as time. Thus, with some rearrangement, we end up with:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 9 This equation: is a second order differential equation. Our solution method, though, worked on first order differential equations. We can rewrite this as: where we have added a new variable v to get a pair of coupled first order equations. Second order equations

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 10 Phase space Concatenate x and v to make a 6- vector: position in phase space. Taking the time derivative: another 6-vector. A vanilla 1 st -order differential equation.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 11 Differential equation solver Applying Euler’s method: Again, performs poorly for large  t. And making substitutions: Writing this as an iteration, we have: Starting with:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 12 Particle structure position velocity force accumulator mass Position in phase space How do we represent a particle?

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 13 Single particle solver interface getDim derivEva l getState setState

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 14 Particle systems particles ntime In general, we have a particle system consisting of n particles to be managed over time:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 15 Particle system solver interface derivEval get/setState getDim For n particles, the solver interface now looks like: particles ntime

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 16 Particle system diff. eq. solver We can solve the evolution of a particle system again using the Euler method:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 17 Forces Each particle can experience a force which sends it on its merry way. Where do these forces come from? Some examples: Constant (gravity) Position/time dependent (force fields) Velocity-dependent (drag) Combinations (Damped springs) How do we compute the net force on a particle?

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 18 Particle systems with forces particles ntime forces F2F2 F nf nf Force objects are black boxes that point to the particles they influence and add in their contributions. We can now visualize the particle system with force objects: F1F1

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 19 Gravity and viscous drag p->f += p->m * F->G p->f -= F->k * p->v The force due to gravity is simply: Often, we want to slow things down with viscous drag:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 20 Recall the equation for the force due to a spring: We can augment this with damping: The resulting force equations for a spring between two particles become: Damped spring r = rest length

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 21 derivEval Clear forces Loop over particles, zero force accumulators Calculate forces Sum all forces into accumulators Return derivatives Loop over particles, return v and f/m Apply forces to particles Clear force accumulators Return derivatives to solver F2F2 F3F3 F nf F1F1

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 22 Bouncing off the walls Add-on for a particle simulator For now, just simple point-plane collisions N P A plane is fully specified by any point P on the plane and its normal N.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 23 Collision Detection N v P x How do you decide when you’ve crossed a plane?

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 24 Normal and tangential velocity N v P v To compute the collision response, we need to consider the normal and tangential components of a particle’s velocity.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 25 Collision Response before after Without backtracking, the response may not be enough to bring a particle to the other side of a wall. In that case, detection should include a velocity check:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 26 Particle frame of reference Let’s say we had our robot arm example and we wanted to launch particles from its tip. How would we go about starting the particles from the right place? First, we have to look at the coordinate systems in the OpenGL pipeline…

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 27 The OpenGL geometry pipeline

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 28 Projection and modelview matrices Any piece of geometry will get transformed by a sequence of matrices before drawing: p’= M project M view M model p The first matrix is OpenGL’s GL_PROJECTION matrix. The second two matrices, taken as a product, are maintained on OpenGL’s GL_MODELVIEW stack: M modelview = M view M model

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 29 Robot arm code, revisited Recall that the code for the robot arm looked something like: glRotatef( theta, 0.0, 1.0, 0.0 ); base(h1); glTranslatef( 0.0, h1, 0.0 ); glRotatef( phi, 0.0, 0.0, 1.0 ); upper_arm(h2); glTranslatef( 0.0, h2, 0.0 ); glRotatef( psi, 0.0, 0.0, 1.0 ); lower_arm(h3); All of the GL calls here modify the modelview matrix. Note that even before these calls are made, the modelview matrix has been modified by the viewing transformation, M view.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 30 Computing particle launch point To find the world coordinate position of the end of the robot arm, you need to follow a series of steps: 1. Figure out what M view before drawing your model. 2. Draw your model and add one more transformation to the tip of the robot arm. glTranslatef( 0.0, h3, 0.0 ); 3. Compute 4. Transform a point at the origin by the resulting matrix. Now you’re ready to launch a particle from that last computed point! Vec4f particleOrigin = particleXform * Vec4f(0,0,0,1); // 4 th coordinate should be ignore Mat4f particleXform = ps->getWorldXform( matCam); Mat4f matCam = ps>glGetMatrix(GL_MODELVIEW_MATRIX);

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 31 Next lecture Topic: Parametric Curves: C2 interpolating curves. How can we make splines that interpolate the control points, and have C2 continuity everywhere? Reading: Bartels, Beatty, and Barsky. An Introduction to Splines for use in Computer Graphics and Geometric Modeling, [Course reader, pp ]