Crowds In A Polygon Soup NextGen Path Planning

  • Slides: 40
Download presentation
Crowds In A Polygon Soup Next-Gen Path Planning David Miles 3/23/2006

Crowds In A Polygon Soup Next-Gen Path Planning David Miles 3/23/2006

Automated Build Process

Automated Build Process

Voxelize Polygon Soup

Voxelize Polygon Soup

Identify Walkable Surfaces

Identify Walkable Surfaces

Simplify Surface Perimeter

Simplify Surface Perimeter

Partition Into Convex Areas

Partition Into Convex Areas

Convex Partitioning

Convex Partitioning

Convex Area Graph Complete

Convex Area Graph Complete

Holes in the Surfaces

Holes in the Surfaces

Splice Location

Splice Location

Single Polygon Surface

Single Polygon Surface

Convex Area Graph Complete

Convex Area Graph Complete

Overhead Obstacles

Overhead Obstacles

Walkable Surface Removal

Walkable Surface Removal

Changing Worlds Dynamic Obstacles • Dynamic obstacles reconfigure world • Dynamic areas added •

Changing Worlds Dynamic Obstacles • Dynamic obstacles reconfigure world • Dynamic areas added • Pathfinding algorithm unchanged

Boolean Subtract - =

Boolean Subtract - =

Boolean Subtract One Area

Boolean Subtract One Area

Non-Convex Dynamic Areas

Non-Convex Dynamic Areas

Establish Connectivity

Establish Connectivity

Match Up Remaining Edges

Match Up Remaining Edges

Dynamic Obstacle Summary • • • Find areas affected by dynamic obstacle Record any

Dynamic Obstacle Summary • • • Find areas affected by dynamic obstacle Record any edges entering from outside Boolean subtract Partition any non-convex dynamic areas Match up unconnected edges

Fluid AI Navigation What can I do with my convex area graph? – Very

Fluid AI Navigation What can I do with my convex area graph? – Very fast navigational ray-casts – Distance to edge queries – Repulsion fields on edges – “Next corner” determination

Path Following in Flocking Desired flocking behavior Common approach attracts each flock member to

Path Following in Flocking Desired flocking behavior Common approach attracts each flock member to the minimum distance path. Does not adapt to available freespace. Repulsion from edges can easily trap individuals in local minima.

For The Pathing Connoisseur Unneeded return to the original path annoys the pathing connoisseur

For The Pathing Connoisseur Unneeded return to the original path annoys the pathing connoisseur Ahhh, much better

It’s Easy Each member of the flock steers left or right to head towards

It’s Easy Each member of the flock steers left or right to head towards the “next corner”.

Finding the Next Corner

Finding the Next Corner

“Portals” Between Areas

“Portals” Between Areas

Initializing the Loop

Initializing the Loop

First Update, Left Side

First Update, Left Side

First Update Complete

First Update Complete

Second Update, Left Side

Second Update, Left Side

Second Update Complete

Second Update Complete

Third Update, Left Side

Third Update, Left Side

Final Output

Final Output

“Next Corner” Summary • • • Easy to compute from convex graph < 2

“Next Corner” Summary • • • Easy to compute from convex graph < 2 cross-products per iteration Can limit iterations Never explicitly create min-dist path Fluid motion even with large disturbances

Conclusions • Automated build of convex area graph – efficiently represents the walkable free

Conclusions • Automated build of convex area graph – efficiently represents the walkable free space – operates on polygon soup mesh – settable enemy size and shape • Dynamic obstacles update graph – no speed overhead once updated • Fluid AI navigation using the graph – Many useful queries performed rapidly

Special Thanks • Meilin Wong • Hong Park and David Modiano • Crystal Dynamics

Special Thanks • Meilin Wong • Hong Park and David Modiano • Crystal Dynamics • dmiles@babelflux. com • www. babelflux. com