Crowd Simulations

advertisement
Crowd Simulations
Guest Instructor - Stephen J. Guy
Outline

Animation basics



How to move one man



Walk Cycle
IK
How to move one thousand




Key framing
Simulation Loop
Crowd Models
Collision Avoidance
Data Structures
Rendering
Outline

Animation basics



How to move one man



Walk Cycle
IK
How to move one thousand



Key framing
Simulation Loop
Crowd Models
Collision Avoidance
Rendering
Animation - Basics





Comp 768 Preview…
Goal: Illusion of continuous motion
Divide into several small time-steps (length T)
Show new image at each time-step
Needs to happened at least ~12/second (more is better)
Advance T
Draw Picture
Update State
Outline

Animation basics



How to move one man



Walk Cycle
IK
How to move one thousand




Key framing
Simulation Loop
Crowd Models
Collision Avoidance
Data Structures
Rendering
Walk Cycle



Simply Translating a character to its goal
is unrealistic
Walk Cycle: A looping series of positions
which represent a character walking (or running or
galloping)
Shifting the animation provides the illusion of walking
Inplace
Shifted w/ Time
Digression - Eadweard Muybridge

19th Century English Photograyher


Used multiple cameras to capture motion
Invented Zoopraxiscope (spinning wheel of still images) to
animate images
Walk Cycle - Analysis

Pros:



Simple to implement
Captures the basics of human movement
Cons:




Walks must cycle
Can’t handle changes in stride length
Can’t handle jumps
Must be animated by hand
Walk Cycle - Alternatives

Inverse Kinematics


Motion Capture


Using math to figure out where to place the
rest of the body to get the feet moving
forward
Record data of real humans walking
Motion Clips

FSM of different motions

Outline

Animation basics



How to move one man



Walk Cycle
IK
How to move one thousand




Key framing
Simulation Loop
Crowd Models
Collision Avoidance
Data Structures
Rendering
Crowd Simulation Models

Simplest model – Agent Based:




Capture Global Behavior w/ many interacting autonomous agents
Each person is represented by one agent
Chooses next state based on goal and neighbors
Pioneered by Craig Reynolds

Won 1998 (Technical) Academy Award
Advance T
For Each Agent
Draw
Agent
Update
s
State
Gather
Neighbors
Agent Based Simulations

Flocking



Social Forces Model




Craig Reylonds
SIGGRAPH1987
Dirk Helbing
Physics Review B 1995
Nature 2000
Reciprocal Velocity Obstacles


Van den Berg
I3D 2008
Agent Based Simulations

Flocking



Social Forces Model




Craig Reylonds
SIGGRAPH1987
Dirk Helbing
Physics Review B 1995
Nature 2000
Reciprocal Velocity Obstacles


Van den Berg
I3D 2008
Flocking



Seminal work in multi-agent movement
Assign simple force to each agent
Used in


Lion King
Batman Returns
Separation
Alignment
Cohesion
Boids - Continued

New forces can be added to incorporate more behaviors
Avoiding Obstacles

Collision Avoidance

Be Creative!

Boids Online

Visit: http://www.red3d.com/cwr/boids/

And: http://www.red3d.com/cwr/steer/Unaligned.html
Agent Based Simulations

Flocking



Social Forces Model




Craig Reylonds
SIGGRAPH1987
Dirk Helbing
Physics Review B 1995
Nature 2000
Reciprocal Velocity Obstacles


Van den Berg
I3D 2008
Helbing’s Social Force Model

Very similar to boid model
Treats all agents as physical obstacles
Solves a = F/m where F is “social force”:

Fij – Pedestrian Avoidance

FiW – Obstacle (Wall) Avoidance


Desired Velocity
Current Velocity
Avoiding Other
Pedestrians
Avoiding Walls
Social Force Model – Pedestrian Avoidance
Collision Avoidance




Non-penetration
Sliding Force
rij – dij Edge-to-edge distance
nij – Vector pointing away from agent
 Ai*e[(rij-dij)/Bi]  Repulsive force which is
exponential increasing with distance
 g(x)  x if agents are colliding, 0 otherwise
tij – Vector pointing tangential to agent
 Vtji – Tangential velocity difference
FiW is very similar
Helbing - Continued

Noticed arching

Also observed in real crowds

Killed or injured people who
experienced too much force (1,600 N/m) – became
unresponsive obstacles

Noticed Faster-is-slower effect
Agent Based Simulations

Flocking



Social Forces Model




Craig Reylonds
SIGGRAPH1987
Dirk Helbing
Physics Review B 1995
Nature 2000
Reciprocal Velocity Obstacles


Van den Berg
I3D 2008
Reciprocal Velocity Obstacles


Applied ideas from robotics to crowd simulations
Basic idea:



Given n agents with velocities, find velocities will cause collisions
Avoid them!
Planning is performed in velocity space

RVOAB(vB, vA) = {v’A | 2v’A – vA  VOAB(vB)}
RVO: Planning In Velocity Space
23
RVO: Planning In Velocity Space
24
RVO: Planning In Velocity Space
R A + RB
25
RVO: Planning In Velocity Space
26
RVO: Planning In Velocity Space
27
RVO: Planning In Velocity Space
28
RVO: Planning In Velocity Space
29
RVO: Planning In Velocity Space
30
RVO: Planning In Velocity Space
31
RVO: Planning In Velocity Space
32
Videos

12 Agents in a Circle
Videos

1,000 agent’s in a circle
Related data-structures

KD-trees


Allowing efficient gathering of nearby neighbors O(log n)
Roadmaps & A*

Allows global navigation around obstacles
Roadmaps
Create roadmap in free
space
Find visible source
nodes
Graph Search to find
path to Destination
1.
2.
3.

A* is very popular graph
search algorithm
36
Video

1,000 people leaving Sitterson Hall

Uses RVO, Roadmaps, A* and Kd-Trees
Outline

Animation basics



How to move one man



Walk Cycle
IK
How to move one thousand




Key framing
Simulation Loop
Crowd Models
Collision Avoidance
Data Structures
Rendering
Rendering Crowds

Traditional OpenGL pipeline can be too slow for 1000s of
agents


View Culling helps, but often not enough
Need Level-of-Detail techniques

Use models with more polygons up close, less when far away
Imposters


Replace Far off agents with
an oriented texture
Several Issues





“Popping”
Uniformity
Lighting
Shadows
Many issues addressed in
recent works
40
Questions
Download