particle systems - university of texas at austin · 2018. 11. 27. · what are particle systems? a...

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

Upload: others

Post on 15-Jun-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Particle Systems

Page 2: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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, 1988. Gavin Miller. “The motion dynamics of snakes and worms.” Computer Graphics 22:169-178, 1988.

Page 3: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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:

Page 4: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

! x =xy"

# $ %

& '

! v = x•

=d! x dt

=dx dtdy dt"

# $

%

& '

x•

= g(! x ,t)

Page 5: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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?

Page 6: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

x•

= g(! x ,t)

Page 7: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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(Δt2).

  Need to take pretty small steps, so not very efficient. Better (more complicated) methods exist, e.g., “Runge-Kutta” and “implicit integration.”

! x i+1 =! x i + Δ t ⋅

! v i

! x (t + Δ t) =! x (t) + Δ t ⋅ x(t) =

! x (t) + Δ t ⋅ g(! x ,t)€

Page 8: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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:

! a ≡ x =d! v dt

=d2! x dt 2

••

! f = m! a = mx

••

x =

! f (! x ,x,t)m

••

Page 9: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

x =! v

v =

! f (! x ,! v ,t)m

"

#

$ $

%

&

' '

x =

! f (! x ,x,t)m

••

Page 10: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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 1st-order differential equation. €

xv"

# $ %

& '

! x ! v "

# $ %

& '

xv"

# $ %

& ' =

! v ! f m"

# $

%

& '

•€

Page 11: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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:

xv"

# $ %

& ' =

! v ! f m"

# $

%

& '

•€

! x (t + Δ t) =! x (t) + Δ t ⋅ x(t)

x(t + Δ t) = x(t) + Δ t ⋅ x(t)€

••

! x (t + Δ t) =! x (t) + Δ t ⋅ ! v (t)

x(t + Δ t) = x(t) + Δ t ⋅! f (! x ,x,t) m

! x i+1 =! x i + Δ t ⋅

! v i

! v i+1 =! v i + Δ t ⋅

! f i

m

Page 12: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

Verlet Integration

 Also called Størmer’s Method Invented by Delambre (1791), Størmer (1907), Cowell and Crommelin (1909), Verlet (1960) and probably others

 More stable than Euler’s method (time-reversible as well)

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

Page 13: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Particle structure

m

! "# $# $# $# $% &

xvf

position velocity force accumulator mass

Position in phase space

How do we represent a particle?

Page 14: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Single particle solver interface

m

! "# $# $# $# $% &

xvf ! "

# $% &

xv

/m! "# $% &

vf

[ ]6getDim

derivEval

getState

setState

Page 15: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Particle systems

particles n time

In general, we have a particle system consisting of n particles to be managed over time:

! x 1! v 1! f 1m1

"

#

$ $ $ $

%

&

' ' ' '

! x 2! v 2! f 2m2

"

#

$ $ $ $

%

&

' ' ' '

! x n! v n! f nmn

"

#

$ $ $ $

%

&

' ' ' '

Page 16: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Particle system solver interface

derivEval

get/setState getDim

For n particles, the solver interface now looks like:

particles n time

6n! x 1! v 1! x 2! v 2 …

! x n! v n

! v 1

! f 1m1

! v 2

! f 2m2

…! v n

! f nmn

Page 17: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Particle system diff. eq. solver We can solve the evolution of a particle system again using the Euler method:

! x 1i+1

! v 1i+1

"! x ni+1

! v ni+1

"

#

$ $ $ $ $ $

%

&

' ' ' ' ' '

=

! x 1i

! v 1i

"! x ni

! v ni

"

#

$ $ $ $ $ $

%

&

' ' ' ' ' '

+ Δt

! v 1i

! f 1i m1"! v ni

! f ni mn

"

#

$ $ $ $ $ $

%

&

' ' ' ' ' '

Page 18: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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?

Page 19: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Particle systems with forces

particles n time forces

F2 Fnf

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:

F1

! x 1! v 1! f 1m1

"

#

$ $ $ $

%

&

' ' ' '

! x 2! v 2! f 2m2

"

#

$ $ $ $

%

&

' ' ' '

! x n! v n! f nmn

"

#

$ $ $ $

%

&

' ' ' '

Page 20: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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:

! f grav = m

! G

! f drag = −k! v

Page 21: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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

f = −kspring (Δ! x − r)

f = − kspring (Δ! x − r) + kdamp

! v [ ]

! f 1 = − kspring Δ

! x − r( ) + kdampΔ! v •Δ! x Δ! x

$

% &

'

( )

*

+ , ,

-

. / /

Δ! x

Δ! x

! f 2 = −

! f 1

r = rest length

p1 =

! x 1! v 1

"

# $ %

& '

p2 =

! x 2! v 2

"

# $

%

& '

Δ! x = ! x 1 −

! x 2

Page 22: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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 1

2

3 Return derivatives

to solver

F2 F3 Fnf F1

! x 1! v 1! f 1m1

"

#

$ $ $ $

%

&

' ' ' '

! x 2! v 2! f 2m2

"

#

$ $ $ $

%

&

' ' ' '

! x n! v n! f nmn

"

#

$ $ $ $

%

&

' ' ' '

! x 1! v 1! f 1m1

"

#

$ $ $ $

%

&

' ' ' '

! x 2! v 2! f 2m2

"

#

$ $ $ $

%

&

' ' ' '

! x n! v n! f nmn

"

#

$ $ $ $

%

&

' ' ' '

! v 1! f 1 m1

"

# $

%

& '

! v 2! f 2 m2

"

# $

%

& ' …

! v n! f n mn

"

# $

%

& '

Page 23: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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.

Page 24: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Collision Detection

N

v

P

x

How do you decide when you’ve crossed a plane?

Page 25: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Normal and tangential velocity

N

v

P

Nv

v Tv

To compute the collision response, we need to consider the normal and tangential components of a particle’s velocity.

! v N =! N • ! v ( )

! N

! v T =! v − ! v N

Page 26: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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:

! v N

! v T

! v T

! " v =! v T − krestitution

! v N

−krestitution! v N

! " v

! v

Page 27: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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…

Page 28: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

The OpenGL geometry pipeline

Page 29: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

Projection and modelview matrices

 Any piece of geometry will get transformed by a sequence of matrices before drawing:

p’= Mproject Mview Mmodel 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:

Mmodelview = Mview Mmodel

Page 30: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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, Mview.

Page 31: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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 Mview 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); // 4th coordinate should be 1.0 -- ignore

Mat4f particleXform = ps->getWorldXform( matCam);

Mat4f matCam = ps>glGetMatrix(GL_MODELVIEW_MATRIX);

Mmodel =Mview−1 Mmodelview

Page 32: Particle Systems - University of Texas at Austin · 2018. 11. 27. · What are particle systems? A particle system is a collection of point masses that obeys some physical laws (e.g,

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

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, 1987. [Course reader, pp. 239-247]