Using multiple threads in an application can increase overall performance by making use of multiple processors, or better use of a single processor. Multiple threads are required to make effective use of multiple graphics pipes. Now multiple graphics windows can each have their own rendering thread, multiple threads can simultaneously traverse the same scene graph, and modification and traversal of the scene graph can safely occur in different threads. Open Inventor can also be used in immersive VR applications based on tools like CAVELib™ (VRCO).
This chapter contains information for two (possibly) different audiences. The first part (Section 23.2, “Programming with Multiple Threads”, through Section 23.7, “Multiple Threads and Performance”) discusses the use of multiple threads in an Open Inventor program. The second part (Section 23.8, “Custom Nodes Introduction”, through Section 23.13, “Automatic Read Lock”) discusses the issues involved in making custom nodes and application callbacks safe for use with multiple rendering threads in a multi-pipe environment.