x Contents
18.5 Publish or Perish 315
18.6 Ground Clamping 320
18.7 Orientation 322
18.8 Advanced Topics 324
18.9 Conclusion 326
Chapter 19 An Egocentric Motion Management System 329
Michael Ramsey
19.1 Fundamental Components of the ECMMS 331
19.2 Collision Sensors 331
19.3 Query Space 332
19.4 Modeling the Environment 334
19.5 The ECMMS Architecture 335
19.6 Modeling an ECMMS-Enabled Agent 335
19.7 Generating a Behavior Model with the ECMMS 336
19.8 Animation Validation 339
19.9 A Single Agent Behavioral Response Algorithm and Example 339
Chapter 20 Pointer Patching Assets 343
Jason Hughes
20.1 Introduction 343
20.2 Overview of the Technique 346
20.3 A Brief Example 348
Chapter 21 Data-Driven Sound Pack Loading and Organization 355
Simon Franco
21.1 Introduction 355
21.2 Constructing a Sound Map 356
21.3 Constructing Sound Packs by Analyzing the Event Table 358
21.4 Constructing and Using Sound Loading Triggers 361
21.5 Conclusion 363
Chapter 22 GPGPU Cloth Simulation Using GLSL, OpenCL, and CUDA 365
Marco Fratarcangeli
22.1 Introduction 365
22.2 Numerical Algorithm 366
22.3 Collision Handling 368
22.4 CPU Implementation 369
22.5 GPU Implementations 371
Contents xi
22.6 GLSL Implementation 372
22.7 CUDA Implementation 373
22.8 OpenCL Implementation 374
22.9 Results 375
22.10 Future Work 377
22.11 Demo 378
Chapter 23 A Jitter-Tolerant Rigid Body Sleep Condition 379
Eric Lengyel
23.1 Introduction 379
23.2 The Sleep Condition 380
Part III Systems Programming 383
Chapter 24 Bit Hacks for Games 385
Eric Lengyel
24.1 Integer Sign Manipulation 385
24.2 Predicates 388
24.3 Miscellaneous Tricks 392
24.4 Logic Formulas 395
Chapter 25 Introspection for C++ Game Engines 397
Jon Watte
25.1 Introduction 397
25.2 The Demo 400
25.3 The Gem 401
25.4 Lifting the Veil 404
25.5 To and From a Network 405
25.6 In Closing 407
Chapter 26 A Highly Optimized Portable Memory Manager 409
Jason Hughes
26.1 Introduction 409
26.2 Overview 411
26.3 Small Block Allocator 415
26.4 Medium Block Allocator 418
26.5 Large Block Allocator 422
xii Contents
26.6 Page Management in the Memory Manager 422
26.7 OSAPI Ideas 425
Chapter 27 Simple Remote Heaps 427
Jason Hughes
27.1 Introduction 427
27.2 Bitwise Remote Heap 428
27.3 Blockwise Remote Heap 430
27.4 Testing Results 435
Chapter 28 A Cache-Aware Hybrid Sorter 437
Manny Ko
28.1 Stream Splitting 438
28.2 Substream Sorting 440
28.3 Stream Merging and Loser Tree 442
28.4 Multicore Implementation 445
28.5 Conclusion 446
Appendix 447
Chapter 29 Thread Communication Techniques 449
Julien Hamaide
29.1 Latency and Threading 449
29.2 Single Writer, Single Reader 450
29.3 The Aggregator 453
29.4 The Dispatcher 455
29.5 The Gateway 455
29.6 Debugging 456
Chapter 30 A Cross-Platform Multithreading Framework 457
Martin Fleisz
30.1 Threading 457
30.2 Synchronization Objects 459
30.3 Limitations 471
30.4 Future Extensions 473
Chapter 31 Producer-Consumer Queues 475
Matthew Johnson
31.1 Introduction 475
31.2 Multithreading Overview 477
Contents xiii
31.3 A First Approach: Using Win32 Semaphores and Critical Sections 477
31.4 A Second Approach: Lock-Free Algorithms 482
31.5 Processor Architecture Overview and Memory Models 483
31.6 Lock-Free Algorithm Design 486
31.7 Lock-Free Implementation of a Free List 487
31.8 Lock-Free Implementation of a Queue 491
31.9 Interprocess Communication 496
Contributor Biographies 499
Index 509
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.68.18