Large Crowds in the GPU: Isaac Rudomin, Ph.D.
We implement FSMs as fragment shaders using three kinds of images: world space images, agent space images and FSM table images. We show a simple example and compare performance of CPU and GPU implementations. Then we examine a more complex example involving more maps and two types of agents (predator-prey). Furthermore we explore how to render agents in 3D more efficiently by using a variation on pseudoinstancing.
Large crowds of autonomous animated characters using fragment shaders and level of detail:
By simulating agent behavior in the GPU and using culling and LOD techniques such as Impostors, we achieve realtime (15fps) performance for crowds of 250K characters.
Automatic translation of XML script to GLSL shaders for crowd simulation :
We present a technique that allows us to codify the behavior of large agent-based crowds by using scripting. The script defines the behavior of each character in the crowd using Finite State Machines, as well as a set of variables and image maps to customize different attributes of the crowds and their environment. This script is automatically translated into a set of image maps and shader programs. The shader programs generated in this fashion use the image maps produced by the same process, together with the information in the environment,
to simulate the behavior of each character in the crowd using the graphics hardware. This framework simplifies behavior specification for agent-based crowds, while allowing the interactive simulation of very large crowds.
The input fusion mechanism for crowd simulation on graphics hardware:
The input fusion mechanism allows flexible behavioral simulation of large agent-based crowds using the graphics hardware. By using a shader program and a set of image maps, different inputs are combined to to query a finite state machine, trigger transitions,and produce an action for each character in the crowd. Inputs include input maps, user events or custom numeric expressions. This framework is extended to allow input maps to be modified by state-dependent expressions. Some example implementations, including the specification of non-deterministic finite state machines, are described, to show the potential of the input fusion mechanism.
- E. Millan, I. Rudomin, Impostors, Pseudo-instancing and Image Maps for GPU Crowd Rendering, International Journal of Virtual Realty (IJVR), Volume 6, Number 1, March 2007, pp. 35-44
- Erik Millan, Benjamin Hernandez, Isaac Rudomin "Large crowds of autonomous animated characters using fragment shaders and level of detail" pp 501-510 in ShaderX5 - Advanced Rendering Techniques, Wolfgang Engel Ed., Charles River Media, Dec 2006
- E Millan, I. Rudomin, Impostors and pseudoinstancing for GPU crowd rendering, Graphite 2006, Kuala Lumpur, November 200
- Rudomin, B. Hernandez, E. Millan, Fragment shaders for agent animation using finite state machines, In Simulation Modelling Practice and Theory Journal, Volume 13, Issue 8 , Programmable Graphics Hardware November 2005, Pages 741-751 Elsevier