March of the Froblins
The Froblins demo is designed to showcase many of the new techniques for character-centric entertainment made possible by the massively parallel compute available on the ATI Radeon™ HD 4800 GPU series. In our large-scale environment with thousands of highly detailed, intelligent characters, the Froblins (frog goblins), are concurrently simulated, animated and rendered entirely on the GPU. The individual character logic for each froblin creature is controlled via a complex shader – 3200 shader instructions for each froblin. We are utilizing the latest functionality available with the DirectX® 10.1 API, hardware tessellation, high fidelity rendering with 4X MSAA settings, at HD resolution with gamma-correct rendering, full HDR FP16 pipeline and advanced post-processing effects.In this interactive environment, thousands of animated, intelligent characters are rendered from a variety of viewpoints ranging from extreme close-ups to far away “bird’s eye” views of the entire system (over three thousands characters at the same time). The demo combines state-of-the-art parallel artificial intelligence computation for dynamic pathfinding and local avoidance on the GPU, massive crowd rendering with LOD management with high-end rendering capabilities such as GPU tessellation for high-quality close-ups and stable performance, terrain system, cascaded shadows for large-range environments, and an advanced global illumination system.
Demo: EXE (327 MB)*
Paper: Siggraph 2008 Advances in Real-Time Rendering Course Notes (PDF, 2.5 MB)
Slides: Siggraph 2008 Advances in Real-Time Rendering Slides (PDF, 7 MB) Siggraph 2008 Beyond Programmable Shading Slides (PDF, 2.3 MB)
* AMD Froblin demo requires Windows Vista® and an ATI Radeon™ HD 4800 Series product with at least 512MB of video memory, ATI Catalyst™ 8.11 or higher, a dual- or quad-core CPU and 2GB of RAM.
Artificial Intelligence with Dynamic Path-finding on the GPU
The Froblins demo employs state-of-the-art, massively parallel artificial intelligence computation for dynamic path finding and local avoidance on the GPU. The froblins busily move from goal to goal while avoiding treacherous regions of the terrain. The characters spend time working at gold mines, foraging wild mushrooms, and napping at their camp sites. The user can explore every corner of this virtual world by flying around the environment using a variety of input paradigms. The user may also influence the behavior of the froblins by placing new goals in the environment and even adding new obstacles such as dangerous poison fields and summoning pull-rightening ghost froblins! As new goals and obstacles are placed in the environment, the froblins adapt by dynamically changing their paths.
Managing and Rendering Large Crowds
Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges, including visibility culling, animation, and level of detail (LOD) management. These have been traditionally CPU-based tasks, trading some extra CPU work for a larger reduction in the GPU load. However, the per-character cost can be a serious bottleneck in that scenario. Furthermore, CPU-side scene management is difficult if objects are simulated and animated on the GPU as they are in the Froblins demo. This demo uses Direct3D® 10.1 functionality to perform view-frustum culling, occlusion culling, and LOD selection entirely on the GPU, allowing thousands of GPU-simulated characters to be rendered with full shadows in arbitrary environments.
Detailed Characters with GPU Tessellation
Using GPU tessellation on characters and terrain allows superior detail and high-quality animation. The GPU tessellation is used to subdivide and displace the characters so that they never look “low-poly” or triangulated and flat. Displacement mapping captures the fine scale details of the character. The difference in the amount of high fidelity details such as the bumps on the skin is instantly noticeable. The tessellation level is dynamically calculated per-frame as a function of the number of tessellated characters in the view for a stable frame rate in dense crowd situations. At the highest level of tessellation, a single froblin character can be rendered with as many as 1.6 million triangles! Froblins that are far off in the distance are drawn using a simplified, non-tessellated, mesh. Animated character rendering performance is improved with a multi-pass approach augmented with vertex compression and decompression on the fly to reduce memory footprint and bandwidth utilization. The combination of GPU tessellation, displacement mapping and effective use of Direct3D® 10.1 functionality allows high quality character rendering even in large crowd scenarios.
In order to create a beautiful and engaging environment, this demo employs many of the advanced lighting and shading techniques you might find in the very latest high-end games. Spherical harmonic light maps are used to capture high-quality global illumination. These light maps provide rich lighting response on the surface of the highly detailed terrain and characters and integrate seamlessly with the dynamic soft shadows generated using a cascaded-shadow mapping technique. Many of these techniques are demonstrated in the demo using interactive educational modes that are available from the main menu.