Crowd Rendering
In this chapter, we focus on the technical aspect of real-time crowd simulation, and how an efficient architecture can be developed. But first, it is important to identify the main goals to achieve. We need: Quantity: real-time simulation of thousands of
- PDF / 2,384,042 Bytes
- 33 Pages / 439.37 x 666.142 pts Page_size
- 97 Downloads / 241 Views
Crowd Rendering
7.1 Introduction In this chapter, we focus on the technical aspect of real-time crowd simulation, and how an efficient architecture can be developed. But first, it is important to identify the main goals to achieve. We need: • • • •
Quantity: real-time simulation of thousands of characters, Quality: state-of-the-art virtual humans, Efficiency: storage and real-time management of massive crowd data, Versatility: adaptation to diversified environments and situations.
The main problem when dealing with thousands of characters is the quantity of information that needs to be processed for each one of them. Such a task is very demanding, even for modern processors. Naive approaches, where virtual humans are processed one after another, in no specific order, provoke costly state switches for both the CPU and GPU. For an efficient use of the available computing power, and to approach hardware peak performance, data flowing through the same path need to be grouped. We thus present an architecture able to handle, early in its pipeline, the sorting of virtual human related data into grouped slots. We show results of thousands of simulated characters. As for the quality, we display state-of-the-art virtual humans where the user attention is focused. Characters capable of facial and hand animation are simulated in the vicinity of the camera to improve believability, while farther, less expensive representations are used. Concerning efficiency of storage and data management, we mainly employ a database to store all the virtual humanrelated data. Finally, the presented architecture is versatile enough to be stressed in very different scenarios, e.g., in confined environments like an auditorium or a classroom, and also in large-scale environments like a crowded fun fair or city. In this chapter, we first introduce in Sect. 7.2 how the virtual humans can be represented, along with their different levels of detail, depending on their distance and eccentricity to the camera. Then, in Sect. 7.3, we fully detail our architecture pipeline, and how the virtual human related data are sorted in order to be processed D. Thalmann, S.R. Musse, Crowd Simulation, DOI 10.1007/978-1-4471-4450-2_7, © Springer-Verlag London 2013
195
196
7
Crowd Rendering
faster. In Sect. 7.4, we introduce the motion kit, a data structure specifically developed for managing the different levels of detail at the animation stage. The storage and management of unchanging data with a dedicated database is developed in Sect. 7.5. In Sect. 7.6, we introduce a shadow mapping algorithm applied to a crowd. Finally, in Sect. 7.7, we introduced crowd patches.
7.2 Virtual Human Representations In an ideal world, graphic cards are able, at each frame, to render an infinite number of triangles with an arbitrary complex shading on them. To visualize crowds of virtual humans, we would simply use thousands of very detailed meshes, e.g., capable of hand and facial animation. Unfortunately, in spite of the recent programmable graphics hardware advances, we ar
Data Loading...