Features
Realtime simulation and rendering ( 120+FPS on GTX 680M )
Pure GPU implementation ( Shoal size: 10240)
Extend Boid method by applying Visibility Check: instead of using distance based spherical neighbor area for alignment, cohesion and separation force, our method uses each fish's view frustum as neighbor area which gives more natural large scale behavior.
Extend Boid method by adding more force: adding avoidance force for more natural pass through each individual; adding flee force for panic flee from predator with maximum speed; adding seeking force to guide the shoal to destination.
The chasing path of the predators is dynamically calculated based on how many fish are inside predator's view frustum, and how far away they are.( Based on the system settings, the predators have a slower max speed and smaller max rotation rate, so these poor predator cannot catch these fish)
Shoal Data Visualization: Fish color is mapped to its speed
3D rendering, with user-controlled camera
Realtime user interaction with system
Phong shading
Shoal Simulation without Predators
Shoal Simulation with Predators
Implementation aspects
Visual Studio 2013
DirectX 11 API
DXUT framework
HLSL with C++
DirectCompute (compute shader)
Vertex Shader, Geometry Shader, Pixel Shader used for GPU implementation