Crowd Rendering

Crowds of people can be an impressive spectacle and are often employed effectively by films to convey occasion and grandeur. Although posing a unique set of challenges, bringing crowds to the real-time domain can greatly enhance the perceived realism of a virtual environment. However, current attempts commonly fall short of increased user-expectations with the sense of immersion quickly dispelled when members cease to appear realistic and distinct.

Thus, in defining a crowd rendering system, there are three immediate objectives:
  • The ability to handle a large number of characters
  • High quality, convincing appearance and animation
  • Individuality

Figure 1: Brute Force rendering of 1000 virtual humans
The remainder of this page provides a brief overview of existing crowd rendering techniques. This project is strongly linked to the Crowd Variety project, which aims to generate visually distinct virtual humans suitable for real-time applications.

Background

Typically, crowd rendering engines implement a Level-of-Detail (LOD) system whereby entities are replaced by discrete, successively coarser approximations as their distance from the camera increases. At the lowest LOD, static impostors are used in place of 3D geometry and recent work within academia has focussed almost exclusively upon the development of such solutions.

However, impostor-centric frameworks can be prohibitively restrictive as they require all animation frames to be pre-rendered (thereby limiting both the length and number of animations), prevent the use of inverse kinematics (IK) and inevitably consume significant amounts of GPU memory. Although these problems can be partially alleviated by dynamic impostors, the point of diminishing returns is quickly reached. Despite this, impostor systems have been successfully applied to scenes comprised of many tens of thousands of colour-modulated agents, see the group's earlier research project on the Real-time Rendering of Crowds . The motivation of the earlier approach could not take advantage of the flexibility of current GPUs.

Recent work has investigated the use of new GPU techniques, such as geometry instancing to realise crowds of significantly higher quality than those afforded by impostors. With this approach, performance gains are achieved CPU-side by permitting multiple copies of a base mesh to be individually animated and rendered on the GPU using a single draw call. Distinct, per-instance data (for example, transformation matrices and bone attributes) are provided by separate vertex streams and/or texture look-ups. For crowd rendering, the reduction in CPU utilization is desirable as such systems are typically CPU-bound; instancing permits a larger allocation of processing time to game-logic such as collision detection and artificial intelligence (AI).

Research

Although capable of rendering many thousands of characters, current instancing techniques are limited by the homogeneity of the crowds that they produce; colour-modulation and related approaches are unable to sufficiently disguise the fact that crowd members are all derived from a limited set of base meshes. Whilst ideal in specialized situations (rendering an army of soldiers, for example), such conformity is improbable within urban environments. Thus, our research seeks to develop new techniques for the promotion of diverse, high-quality agents within instanced crowds.

Back to Research

uea