Multithreading for Visual Effects

Book description

Tackle the Challenges of Parallel Programming in the Visual Effects Industry

In Multithreading for Visual Effects, developers from DreamWorks Animation, Pixar, Side Effects, Intel, and AMD share their successes and failures in the messy real-world application area of production software. They provide practical advice on multithreading techniques and visual effects used in popular visual effects libraries (such as Bullet, OpenVDB, and OpenSubdiv), one of the industry’s leading visual effects packages (Houdini), and proprietary animation systems. This information is valuable not just to those in the visual effects arena, but also to developers of high performance software looking to increase performance of their code.

Diverse Solutions to Solve Performance Problems

After an introductory chapter, each subsequent chapter presents a case study that illustrates how the authors used multithreading techniques to achieve better performance. The authors discuss the problems that occurred and explain how they solved them. The case studies encompass solutions for shaving milliseconds, solutions for optimizing longer running tasks, multithreading techniques for modern CPU architectures, and massive parallelism using GPUs. Some of the case studies include open source projects so you can try out these techniques for yourself and see how well they work.

Table of contents

  1. Front Cover (1/2)
  2. Front Cover (2/2)
  3. Contents (1/2)
  4. Contents (2/2)
  5. Preface
  6. Acknowledgments
  7. Authors
  8. List of Figures
  9. List of Tables
  10. Chapter 1: Introduction and Overview (1/4)
  11. Chapter 1: Introduction and Overview (2/4)
  12. Chapter 1: Introduction and Overview (3/4)
  13. Chapter 1: Introduction and Overview (4/4)
  14. Chapter 2: Houdini: Multithreading Existing Software (1/6)
  15. Chapter 2: Houdini: Multithreading Existing Software (2/6)
  16. Chapter 2: Houdini: Multithreading Existing Software (3/6)
  17. Chapter 2: Houdini: Multithreading Existing Software (4/6)
  18. Chapter 2: Houdini: Multithreading Existing Software (5/6)
  19. Chapter 2: Houdini: Multithreading Existing Software (6/6)
  20. Chapter 3: The Presto Execution System: Designing for Multithreading (1/6)
  21. Chapter 3: The Presto Execution System: Designing for Multithreading (2/6)
  22. Chapter 3: The Presto Execution System: Designing for Multithreading (3/6)
  23. Chapter 3: The Presto Execution System: Designing for Multithreading (4/6)
  24. Chapter 3: The Presto Execution System: Designing for Multithreading (5/6)
  25. Chapter 3: The Presto Execution System: Designing for Multithreading (6/6)
  26. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (1/8)
  27. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (2/8)
  28. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (3/8)
  29. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (4/8)
  30. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (5/8)
  31. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (6/8)
  32. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (7/8)
  33. Chapter 4: LibEE: Parallel Evaluation of Character Rigs (8/8)
  34. Chapter 5: Fluids: Simulation on the CPU (1/6)
  35. Chapter 5: Fluids: Simulation on the CPU (2/6)
  36. Chapter 5: Fluids: Simulation on the CPU (3/6)
  37. Chapter 5: Fluids: Simulation on the CPU (4/6)
  38. Chapter 5: Fluids: Simulation on the CPU (5/6)
  39. Chapter 5: Fluids: Simulation on the CPU (6/6)
  40. Chapter 6: Bullet Physics: Simulation with OpenCL (1/6)
  41. Chapter 6: Bullet Physics: Simulation with OpenCL (2/6)
  42. Chapter 6: Bullet Physics: Simulation with OpenCL (3/6)
  43. Chapter 6: Bullet Physics: Simulation with OpenCL (4/6)
  44. Chapter 6: Bullet Physics: Simulation with OpenCL (5/6)
  45. Chapter 6: Bullet Physics: Simulation with OpenCL (6/6)
  46. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (1/8)
  47. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (2/8)
  48. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (3/8)
  49. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (4/8)
  50. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (5/8)
  51. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (6/8)
  52. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (7/8)
  53. Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing (8/8)
  54. Bibliography
  55. Back Cover

Product information

  • Title: Multithreading for Visual Effects
  • Author(s): Martin Watt, Erwin Coumans, George ElKoura, Ronald Henderson, Manuel Kraemer, Jeff Lait, James Reinders
  • Release date: July 2014
  • Publisher(s): A K Peters/CRC Press
  • ISBN: 9781482243574