Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

BSAVE (bitmap format) wikipedia , lookup

Free and open-source graphics device driver wikipedia , lookup

Computer vision wikipedia , lookup

Waveform graphics wikipedia , lookup

Apple II graphics wikipedia , lookup

2.5D wikipedia , lookup

Framebuffer wikipedia , lookup

Video card wikipedia , lookup

Tektronix 4010 wikipedia , lookup

Graphics processing unit wikipedia , lookup

Molecular graphics wikipedia , lookup

Transcript
Particle Systems
Mohan Sridharan
Based on slides created by Edward Angel
CS4395: Computer Graphics
1
Introduction
• Most important of procedural methods:
• Used to model:
– Natural phenomena:
• Clouds.
• Terrain.
• Plants.
– Crowd Scenes.
– Real physical processes.
CS4395: Computer Graphics
2
Newtonian Particle
• Particle system is a set of particles.
• Each particle is an ideal point mass.
• Six degrees of freedom:
– Position.
– Velocity.
• Each particle obeys Newton's law:
f = ma
CS4395: Computer Graphics
3
Particle Equations
• Define position and velocity:
pi = (xi, yi zi)
vi = dpi /dt = pi‘ = (dxi /dt, dyi /dt , zi /dt)
m vi‘= fi
• Hard part is defining force vector.
CS4395: Computer Graphics
4
Force Vector
• Independent Particles :
– Gravity.
– Wind forces.
– O(n) calculation.
• Coupled Particles O(n):
– Meshes.
– Spring-Mass Systems.
• Coupled Particles O(n2):
– Attractive and repulsive forces.
CS4395: Computer Graphics
5
Solution of Particle Systems
float time, delta state[6n], force[3n];
state = initial_state();
for(time = t0; time<final_time,time+=delta>){
force = force_function(state, time);
state = ode(force, state, time, delta);
render(state, time)
}
CS4395: Computer Graphics
6
Simple Forces
• Consider force on particle i:
fi = fi(pi, vi)
• Gravity fi = g.
gi = (0, -g, 0)
• Wind forces.
• Drag.
pi(t0), vi(t0)
CS4395: Computer Graphics
7
Meshes
• Connect each particle to its closest neighbors.
– O(n) force calculation.
• Use spring-mass system:
CS4395: Computer Graphics
8
Spring Forces
• Assume each particle has unit mass and is connected
to its neighbor(s) by a spring.
• Hooke’s law: force proportional to distance (d = ||p –
q||) between the points.
CS4395: Computer Graphics
9
Hooke’s Law
• Let s be the distance when there is no force:
f = -ks(|d| - s) d/|d|
ks is the spring constant.
d/|d| is a unit vector pointed from p to q.
• Each interior point in the mesh has four forces
applied on it.
CS4395: Computer Graphics
10
Spring Damping
• A pure spring-mass will oscillate forever!
• Must add a damping term.
·
f = -(ks(|d| - s) + kd d·d/|d|)d/|d|
• Must project velocity:
CS4395: Computer Graphics
11
Attraction and Repulsion
• Inverse square law:
f = -krd/|d|3
• General case requires O(n2) calculation.
• In most problems, not many particles contribute to
the forces on any given particle.
• Sorting problem: is it O(n log n)?
CS4395: Computer Graphics
12
Boxes
• Spatial subdivision technique.
• Divide space into boxes.
• Particle can only interact with particles in its box or
the neighboring boxes.
• Must update which box a particle belongs to after
each time step.
CS4395: Computer Graphics
13
Linked Lists
• Each particle maintains a linked list of its neighbors.
• Update data structure at each time step.
• Must amortize cost of building the data structures
initially.
CS4395: Computer Graphics
14
Particle Field Calculations
• Consider simple gravity.
• We do not compute forces due to sun, moon, and
other large bodies 
• Rather we use the gravitational field.
• Usually we can group particles into equivalent point
masses.
CS4395: Computer Graphics
15
Solution of ODEs
• Particle system has 6n ordinary differential
equations.
• Write set as du/dt = g(u,t)
• Solve by approximations : Taylor’s theorem.
CS4395: Computer Graphics
16
Euler’s Method
u(t + h) ≈ u(t) + h du/dt = u(t) + hg(u, t)
• Per step error is O(h2).
• Require one force evaluation per time step
• Problem is numerical instability: depends on step
size.
CS4395: Computer Graphics
17
Improved Euler
u(t + h) ≈ u(t) + h/2(g(u, t) + g(u, t+h))
• Per step error is O(h3).
• Also allows for larger step sizes.
• But requires two function evaluations per step.
• Also known as Runge-Kutta method of order 2
CS4395: Computer Graphics
18
Contraints
• Easy in computer graphics to ignore physical reality.
• Surfaces are virtual.
• Must detect collisions separately if we want exact
solution.
• Can approximate with repulsive forces.
CS4395: Computer Graphics
19
Collisions
• Once we detect a collision, we can calculate new
path.
• Use coefficient of restitution.
• Reflect vertical component.
• May have to use partial time step.
CS4395: Computer Graphics
20
Contact Forces
CS4395: Computer Graphics
21
Other Topics
• Language-based models: Section 11.7.
• Recursive methods and fractals: Section 11.8.
• Procedural noise: Section 11.9.
• Examples in Appendix (A.18).
CS4395: Computer Graphics
22