<?xml version="1.0" encoding="ISO-8859-1"?>
<toc>
<book href="index.html" id="id5381062">
<title>OpenGL Performer&#8482;
Getting Started Guide</title>
<bookinfo href="front.html">
<title>Front Matter</title>
</bookinfo>
<preface href="pr01.html" id="id5439413">
<title>New Features in This Guide</title>
</preface>
<preface href="pr02.html" id="LE90217-PARENT">
<title>About This Guide</title>
<section href="pr02.html#id5178943" id="id5178943">
<title>What Is OpenGL Performer?</title>
</section>
<section href="pr02.html#id5179041" id="id5179041">
<title>Why Use OpenGL Performer?</title>
</section>
<section href="pr02.html#id5179294" id="id5179294">
<title>What You Should Know Before Reading This Guide</title>
</section>
<section href="pr02.html#id5179354" id="id5179354">
<title>What This Guide Contains</title>
<section href="pr02.html#id5179394" id="id5179394">
<title>Part One: Overview of OpenGL Performer</title>
</section>
<section href="pr02.html#id5179474" id="id5179474">
<title>Part Two: Programming with OpenGL Performer</title>
</section>
</section>
<section href="pr02.html#id5179699" id="id5179699">
<title>Conventions</title>
</section>
<section href="pr02.html#id5177280" id="id5177280">
<title>Internet and Hardcopy Reading for the OpenGL Performer Series</title>
</section>
<section href="pr02.html#id5177410" id="id5177410">
<title>Reader Comments</title>
</section>
</preface>
<part href="pt01.html" id="id5177516">
<title>Part I. Overview of OpenGL Performer</title>
<chapter href="ch01.html" id="LE92408-PARENT">
<title>Chapter 1. Getting Acquainted with OpenGL Performer</title>
<section href="ch01.html#LE51844-PARENT" id="LE51844-PARENT">
<title>Installing the Software</title>
</section>
<section href="ch01.html#id5177729" id="id5177729">
<title>Exploring the OpenGL Performer Sample Scenes with Perfly</title>
<section href="ch01.html#LE23302-PARENT" id="LE23302-PARENT">
<title>Locations of Perfly and Example Source Code</title>
</section>
<section href="ch01.html#LE21304-PARENT" id="LE21304-PARENT">
<title>Starting and Quitting Perfly</title>
</section>
<section href="ch01.html#LE22969-PARENT" id="LE22969-PARENT">
<title>Basic Perfly Controls</title>
</section>
<section href="ch01.html#LE13153-PARENT" id="LE13153-PARENT">
<title>Looking Around</title>
</section>
<section href="ch01.html#LE29818-PARENT" id="LE29818-PARENT">
<title>Approaching the Building</title>
<figure href="ch01.html#id5178226" id="id5178226">
<title>Figure 1-1. 


Section of the New Jerusalem City Hall</title>
</figure>
</section>
<section href="ch01.html#LE35596-PARENT" id="LE35596-PARENT">
<title>More Controls</title>
</section>
<section href="ch01.html#LE33960-PARENT" id="LE33960-PARENT">
<title>Other Motion Models</title>
<section href="ch01.html#id5178543" id="id5178543">
<title>Flying</title>
</section>
<section href="ch01.html#id5187712" id="id5187712">
<title>Trackball</title>
</section>
<section href="ch01.html#id5187780" id="id5187780">
<title>Motion Using Paths</title>
</section>
</section>
<section href="ch01.html#LE32404-PARENT" id="LE32404-PARENT">
<title>The Use of Instances</title>
</section>
</section>
<section href="ch01.html#id5187866" id="id5187866">
<title>Loading Databases into OpenGL Performer</title>
</section>
<section href="ch01.html#id5188044" id="id5188044">
<title>Going Beyond Visual Simulation</title>
</section>
</chapter>
<chapter href="ch02.html" id="LE76730-PARENT">
<title>Chapter 2. OpenGL Performer Basics</title>
<section href="ch02.html#id5188128" id="id5188128">
<title>OpenGL Performer Applications </title>
</section>
<section href="ch02.html#id5188295" id="id5188295">
<title>Library Structure of OpenGL Performer</title>
<table href="ch02.html#id5188380" id="id5188380">
<title>Table 2-1. OpenGL Performer Libraries</title>
</table>
<figure href="ch02.html#id5189151" id="id5189151">
<title>Figure 2-1. OpenGL Performer Library Hierarchy</title>
</figure>
<section href="ch02.html#id5189288" id="id5189288">
<title>Library Features</title>
<section href="ch02.html#id5189342" id="id5189342">
<title>High-Performance Rendering Library (libpr) </title>
</section>
<section href="ch02.html#id5189492" id="id5189492">
<title>Visual Simulation Application Library (libpf)</title>
</section>
<section href="ch02.html#LE37306-PARENT" id="LE37306-PARENT">
<title>


Geometry Builder Library (libpfdu) </title>
</section>
<section href="ch02.html#id5189808" id="id5189808">
<title>Utility Library (libpfutil) </title>
</section>
<section href="ch02.html#id5189909" id="id5189909">
<title>User Interface Library (libpfui) </title>
</section>
<section href="ch02.html#id5189954" id="id5189954">
<title>A Graphical Viewer Library (libpfv)</title>
</section>
<section href="ch02.html#id5190034" id="id5190034">
<title>A Configuration-Import Library (libpfmpk)</title>
</section>
<section href="ch02.html#id5190063" id="id5190063">
<title>Database Loader Library (libpfdb) </title>
</section>
</section>
</section>
<section href="ch02.html#id5190094" id="id5190094">
<title>
Overview of the OpenGL Performer Library Structure</title>
<section href="ch02.html#id5190157" id="id5190157">
<title>libpf&#8212;Visual Simulation Library</title>
<section href="ch02.html#id5190201" id="id5190201">
<title>Multiprocessing Framework</title>
<figure href="ch02.html#id5190337" id="id5190337">
<title>Figure 2-2. Parallel Pipeline Processes</title>
</figure>
</section>
<section href="ch02.html#id5190431" id="id5190431">
<title>Display</title>
</section>
<section href="ch02.html#id5190449" id="id5190449">
<title>Frame Control</title>
</section>
<section href="ch02.html#id5190500" id="id5190500">
<title>Visual Database (pfScene)
</title>
</section>
<section href="ch02.html#id5190904" id="id5190904">
<title>Special Features (pfEarthSky, pfSequence, pfASD)</title>
</section>
</section>
<section href="ch02.html#id5191078" id="id5191078">
<title> libpr&#8212;High-Performance Rendering Library</title>
<section href="ch02.html#id5191110" id="id5191110">
<title>High-Performance Geometry Rendering </title>
</section>
<section href="ch02.html#id5191172" id="id5191172">
<title>Efficient Graphics State Management </title>
</section>
<section href="ch02.html#id5191231" id="id5191231">
<title>Graphics State Encapsulation </title>
</section>
<section href="ch02.html#LE68334-PARENT" id="LE68334-PARENT">
<title>Display Lists </title>
</section>
<section href="ch02.html#id5191367" id="id5191367">
<title>Math Support</title>
</section>
<section href="ch02.html#id5191396" id="id5191396">
<title>Intersections</title>
</section>
<section href="ch02.html#id5191410" id="id5191410">
<title>Color Tables (pfColortable)</title>
</section>
<section href="ch02.html#id5191460" id="id5191460">
<title>Light Points</title>
</section>
<section href="ch02.html#id5191497" id="id5191497">
<title>pfObjects</title>
</section>
<section href="ch02.html#id5191511" id="id5191511">
<title>Asynchronous File I/O (pfFile)</title>
</section>
<section href="ch02.html#id5191523" id="id5191523">
<title>Memory Allocation (pfDataPool)</title>
</section>
<section href="ch02.html#id5191570" id="id5191570">
<title>High-Resolution and Video-Rate Clocks (pfGetTime,)</title>
</section>
<section href="ch02.html#id5191669" id="id5191669">
<title>The pfWindow Windowing Functions</title>
</section>
</section>
<section href="ch02.html#id5191778" id="id5191778">
<title> libpfdu&#8212;Geometry Builder Library</title>
<figure href="ch02.html#id5191801" id="id5191801">
<title>Figure 2-3. Relationship of OpenGL Performer to Database Formats</title>
</figure>
<section href="ch02.html#id5191973" id="id5191973">
<title>Database Builder</title>
</section>
</section>
<section href="ch02.html#id5192111" id="id5192111">
<title>libpfv&#8212;A Graphical Viewer Library</title>
</section>
<section href="ch02.html#id5192407" id="id5192407">
<title>libpfmpk&#8212;A Configuration-Import Library</title>
</section>
</section>
<section href="ch02.html#id5192474" id="id5192474">
<title>X and IRIS IM</title>
</section>
<section href="ch02.html#id5192562" id="id5192562">
<title>Porting from IRIS GL to OpenGL</title>
</section>
<section href="ch02.html#id5192660" id="id5192660">
<title>Survey of Visual Simulation Techniques</title>
<section href="ch02.html#id5192948" id="id5192948">
<title>Low-Latency Image Generation</title>
</section>
<section href="ch02.html#id5193178" id="id5193178">
<title>Consistent Frame Rates</title>
</section>
<section href="ch02.html#id5193280" id="id5193280">
<title>Rich Scene Content</title>
<section href="ch02.html#id5193291" id="id5193291">
<title>Level of Detail Selection</title>
</section>
<section href="ch02.html#id5193382" id="id5193382">
<title>
Billboard Objects</title>
</section>
<section href="ch02.html#id5193471" id="id5193471">
<title>Animation Sequences</title>
</section>
<section href="ch02.html#id5193565" id="id5193565">
<title>Antialiasing</title>
</section>
</section>
<section href="ch02.html#id5193774" id="id5193774">
<title>Texture Mapping</title>
<section href="ch02.html#id5193850" id="id5193850">
<title>Surface Appearance</title>
</section>
<section href="ch02.html#id5193899" id="id5193899">
<title>Environment Mapping</title>
</section>
<section href="ch02.html#id5193971" id="id5193971">
<title>Sophisticated Shading</title>
</section>
<section href="ch02.html#id5194021" id="id5194021">
<title>Projective Texture</title>
</section>
</section>
<section href="ch02.html#id5194063" id="id5194063">
<title>Character Animation</title>
<section href="ch02.html#id5194175" id="id5194175">
<title>Morphing</title>
</section>
<section href="ch02.html#id5194262" id="id5194262">
<title>Generalized Morphing</title>
</section>
<section href="ch02.html#id5194432" id="id5194432">
<title>Skeleton Animation</title>
</section>
<section href="ch02.html#id5194492" id="id5194492">
<title>Total Animation</title>
</section>
</section>
<section href="ch02.html#id5194551" id="id5194551">
<title>Database Construction</title>
</section>
</section>
</chapter>
</part>
<part href="pt02.html" id="id5194694">
<title>Part II. Programming with OpenGL Performer</title>
<chapter href="ch03.html" id="LE57344-PARENT">
<title>Chapter 3. OpenGL Performer Programming Interface</title>
<section href="ch03.html#LE23469-PARENT" id="LE23469-PARENT">
<title>General Naming Conventions</title>
<section href="ch03.html#id5194918" id="id5194918">
<title>Prefixes</title>
</section>
<section href="ch03.html#id5194937" id="id5194937">
<title>Header Files</title>
</section>
<section href="ch03.html#id5195039" id="id5195039">
<title>Naming in C and C++</title>
</section>
<section href="ch03.html#id5195083" id="id5195083">
<title>Abbreviations</title>
</section>
<section href="ch03.html#id5195117" id="id5195117">
<title>Macros, Tokens, and Enums</title>
</section>
</section>
<section href="ch03.html#LE68778-PARENT" id="LE68778-PARENT">
<title>Class API</title>
<section href="ch03.html#id5195226" id="id5195226">
<title>O
bject Creation</title>
</section>
<section href="ch03.html#id5195257" id="id5195257">
<title>Set Routines</title>
</section>
<section href="ch03.html#id5195283" id="id5195283">
<title>Get Routines</title>
<section href="ch03.html#id5195306" id="id5195306">
<title>Getting Current In-Use Values</title>
</section>
</section>
<section href="ch03.html#id5195391" id="id5195391">
<title>Action Routines</title>
</section>
<section href="ch03.html#id5195431" id="id5195431">
<title>Enable and Disable of Modes</title>
</section>
<section href="ch03.html#id5195491" id="id5195491">
<title>Mode, Attribute, or Value</title>
</section>
</section>
<section href="ch03.html#LE25785-PARENT" id="LE25785-PARENT">
<title>Base Clas
ses</title>
<section href="ch03.html#id5195799" id="id5195799">
<title>Inheritance Graph</title>
<figure href="ch03.html#id5195831" id="id5195831">
<title>Figure 3-1. Partial Inheritance Graph of OpenGL Performer Data Types</title>
</figure>
</section>
<section href="ch03.html#id5195937" id="id5195937">
<title>Libpr and Libpf Objects</title>
</section>
<section href="ch03.html#id5196035" id="id5196035">
<title>User Data</title>
<example href="ch03.html#LE74828-PARENT" id="LE74828-PARENT">
<title>Example 3-1. How to Use User Data</title>
</example>
</section>
<section href="ch03.html#LE37855-PARENT" id="LE37855-PARENT">
<title>pfDelete() and Reference Counting</title>
<table href="ch03.html#id5196262" id="id5196262">
<title>Table 3-1. Routines that Modify libpr Object Reference Counts</title>
</table>
<example href="ch03.html#LE55683-PARENT" id="LE55683-PARENT">
<title>Example 3-2. Objects and Reference Counts</title>
</example>
<example href="ch03.html#LE12730-PARENT" id="LE12730-PARENT">
<title>Example 3-3. Using pfDelete() with libpr Objects</title>
</example>
<example href="ch03.html#LE35315-PARENT" id="LE35315-PARENT">
<title>Example 3-4. Using pfDelete() with libpf Objects</title>
</example>
</section>
<section href="ch03.html#id5197223" id="id5197223">
<title>Copying Objects with pfCopy()</title>
<example href="ch03.html#LE97628-PARENT" id="LE97628-PARENT">
<title>Example 3-5. Using pfCopy()</title>
</example>
</section>
<section href="ch03.html#id5197344" id="id5197344">
<title>Printing Objec
ts with 
pfPrint()</title>
</section>
<section href="ch03.html#id5197621" id="id5197621">
<title>Determining Ob
ject Type</title>
<example href="ch03.html#LE45205-PARENT" id="LE45205-PARENT">
<title>Example 3-6. General-Purpose Scene Graph Traverser</title>
</example>
</section>
</section>
</chapter>
<chapter href="ch04.html" id="LE86968-PARENT">
<title>Chapter 4. Introduction to OpenGL Performer Concepts</title>
<section href="ch04.html#LE62833-PARENT" id="LE62833-PARENT">
<title>Scene-to-Screen Path</title>
<figure href="ch04.html#id5197971" id="id5197971">
<title>Figure 4-1. Data-to-Display</title>
</figure>
<section href="ch04.html#id5197992" id="id5197992">
<title>Scene Graph</title>
<section href="ch04.html#id5198012" id="id5198012">
<title>Scene Graph Hierarchy</title>
<figure href="ch04.html#id5198028" id="id5198028">
<title>Figure 4-2. Scene Graph Hierarchy</title>
</figure>
</section>
<section href="ch04.html#id5198121" id="id5198121">
<title>Scene Graph Traversers</title>
</section>
</section>
<section href="ch04.html#id5198188" id="id5198188">
<title>Channels</title>
<figure href="ch04.html#id5198228" id="id5198228">
<title>Figure 4-3. Camera with Viewing Volume</title>
</figure>
<section href="ch04.html#id5198353" id="id5198353">
<title>Pipe and Window</title>
<figure href="ch04.html#id5198439" id="id5198439">
<title>Figure 4-4. Multiprocessing Frames in the Pipe</title>
</figure>
</section>
<section href="ch04.html#id5198528" id="id5198528">
<title>Starting the Stages</title>
<table href="ch04.html#id5198546" id="id5198546">
<title>Table 4-1. Traversals Launched</title>
</table>
</section>
<section href="ch04.html#id5198673" id="id5198673">
<title>Rendering the Scene</title>
</section>
<section href="ch04.html#id5198714" id="id5198714">
<title>Display Lists</title>
</section>
</section>
</section>
<section href="ch04.html#LE90296-PARENT" id="LE90296-PARENT">
<title>Parts of a Performer Application</title>
<section href="ch04.html#id5198887" id="id5198887">
<title>Initializing Performer</title>
<section href="ch04.html#id5198938" id="id5198938">
<title>Shared Memory Arena</title>
</section>
</section>
<section href="ch04.html#id5199002" id="id5199002">
<title>Creating the Pipe, Channel, and Pipe Window</title>
</section>
<section href="ch04.html#id5199033" id="id5199033">
<title>Loading the Scene Graph</title>
</section>
<section href="ch04.html#id5199062" id="id5199062">
<title>Positioning the Channel</title>
</section>
<section href="ch04.html#id5199165" id="id5199165">
<title>Creating the Simulation Loop</title>
<figure href="ch04.html#id5199206" id="id5199206">
<title>Figure 4-5. Simulation Loop</title>
</figure>
<example href="ch04.html#LE71612-PARENT" id="LE71612-PARENT">
<title>Example 4-1. Synchronization Loop</title>
</example>
</section>
</section>
<section href="ch04.html#LE40999-PARENT" id="LE40999-PARENT">
<title>Inputting and Reading User Events</title>
<section href="ch04.html#id5199347" id="id5199347">
<title>Implementing User Input with Window Events</title>
<section href="ch04.html#id5199405" id="id5199405">
<title>Initializing the Utility Library</title>
</section>
<section href="ch04.html#id5199429" id="id5199429">
<title>Enabling User Input</title>
</section>
</section>
<section href="ch04.html#id5199526" id="id5199526">
<title>Retrieving User Events</title>
<example href="ch04.html#LE93886-PARENT" id="LE93886-PARENT">
<title>Example 4-2. Handling Keyboard Input</title>
</example>
</section>
</section>
</chapter>
<chapter href="ch05.html" id="LE83219-PARENT">
<title>Chapter 5. Creating a Display with pfChannel</title>
<figure href="ch05.html#id5199733" id="id5199733">
<title>Figure 5-1. Multiple Windows, Multiple Channels</title>
</figure>
<section href="ch05.html#LE33835-PARENT" id="LE33835-PARENT">
<title>Creating and Configuring a pfChannel</title>
<section href="ch05.html#LE40397-PARENT" id="LE40397-PARENT">
<title>Acquiring a pfPipe</title>
</section>
<section href="ch05.html#LE33868-PARENT" id="LE33868-PARENT">
<title>Creating a pfChannel Rendered by a pfPipe</title>
</section>
<section href="ch05.html#LE25059-PARENT" id="LE25059-PARENT">
<title>Creating and Configuring a pfPipeWindow </title>
</section>
<section href="ch05.html#LE73977-PARENT" id="LE73977-PARENT">
<title>Attaching a pfScene to the pfChannel</title>
</section>
<section href="ch05.html#LE15038-PARENT" id="LE15038-PARENT">
<title>Configuring a Viewport for the pfChannel</title>
</section>
<section href="ch05.html#id5200181" id="id5200181">
<title>Creating a Background for a pfChannel</title>
</section>
</section>
<section href="ch05.html#LE18203-PARENT" id="LE18203-PARENT">
<title>Initializing the pfChannel View</title>
<figure href="ch05.html#id5200291" id="id5200291">
<title>Figure 5-2. Bounding Sphere</title>
</figure>
<section href="ch05.html#id5200378" id="id5200378">
<title>Bounding Volumes</title>
</section>
<section href="ch05.html#LE62487-PARENT" id="LE62487-PARENT">
<title>Defining the Viewing Frustum</title>
<figure href="ch05.html#id5200480" id="id5200480">
<title>Figure 5-3. Viewing Frustum</title>
</figure>
<section href="ch05.html#LE59095-PARENT" id="LE59095-PARENT">
<title>Near and Far Clip Planes</title>
</section>
<section href="ch05.html#LE35954-PARENT" id="LE35954-PARENT">
<title>Height and Width of the View Frustum</title>
</section>
<section href="ch05.html#LE58500-PARENT" id="LE58500-PARENT">
<title>Direction and Position of the View</title>
<figure href="ch05.html#id5200756" id="id5200756">
<title>Figure 5-4. Heading, Pitch, and Roll Values</title>
</figure>
</section>
</section>
</section>
<section href="ch05.html#LE76127-PARENT" id="LE76127-PARENT">
<title>Channel Callbacks</title>
<section href="ch05.html#id5200964" id="id5200964">
<title>Using Passthrough Data</title>
</section>
<section href="ch05.html#id5201024" id="id5201024">
<title>Channel Callback Example</title>
<example href="ch05.html#LE91059-PARENT" id="LE91059-PARENT">
<title>Example 5-1. Channel Callback Using Passthrough Data</title>
</example>
</section>
</section>
<section href="ch05.html#LE21249-PARENT" id="LE21249-PARENT">
<title>Using Multiple Channels</title>
<figure href="ch05.html#id5201116" id="id5201116">
<title>Figure 5-5. Multiple Channels </title>
</figure>
<section href="ch05.html#id5201158" id="id5201158">
<title>Grouping Channels</title>
</section>
<section href="ch05.html#id5201219" id="id5201219">
<title>Choosing the Attributes to Share</title>
<section href="ch05.html#id5201332" id="id5201332">
<title>Attribute Mask</title>
<table href="ch05.html#id5201347" id="id5201347">
<title>Table 5-1. pfChannel Attributes</title>
</table>
</section>
</section>
<section href="ch05.html#LE31975-PARENT" id="LE31975-PARENT">
<title>Using View Offsets</title>
<figure href="ch05.html#id5201754" id="id5201754">
<title>Figure 5-6. Axes Orientation in Performer</title>
</figure>
</section>
</section>
<section href="ch05.html#LE41262-PARENT" id="LE41262-PARENT">
<title>Multiple Pipes</title>
<figure href="ch05.html#id5201810" id="id5201810">
<title>Figure 5-7. Pipe Stages</title>
</figure>
<section href="ch05.html#id5201831" id="id5201831">
<title>Setting the Multiprocessing Configuration</title>
</section>
<section href="ch05.html#id5201889" id="id5201889">
<title>Creating Multiple pfPipes</title>
</section>
</section>
</chapter>
<chapter href="ch06.html" id="LE26636-PARENT">
<title>Chapter 6. Creating Scene Graphs</title>
<section href="ch06.html#LE90359-PARENT" id="LE90359-PARENT">
<title>What Is a Node?</title>
<table href="ch06.html#id5202160" id="id5202160">
<title>Table 6-1. Examples of Node Fields</title>
</table>
<section href="ch06.html#id5202382" id="id5202382">
<title>Node Attributes</title>
</section>
</section>
<section href="ch06.html#LE18888-PARENT" id="LE18888-PARENT">
<title>Scene Graph Nodes</title>
<section href="ch06.html#id5202595" id="id5202595">
<title>Group Nodes</title>
<figure href="ch06.html#id5202631" id="id5202631">
<title>Figure 6-1. Multiple Parent Nodes</title>
</figure>
<section href="ch06.html#id5202672" id="id5202672">
<title>OpenGL Performer Group Nodes</title>
</section>
</section>
<section href="ch06.html#id5202913" id="id5202913">
<title>Leaf Nodes</title>
</section>
</section>
<section href="ch06.html#LE43814-PARENT" id="LE43814-PARENT">
<title>Creating a Scene Graph</title>
<section href="ch06.html#id5203075" id="id5203075">
<title>Creating and Attaching the pfScene Node</title>
</section>
<section href="ch06.html#id5203127" id="id5203127">
<title>Adding Nodes in a Scene Graph</title>
</section>
<section href="ch06.html#id5203256" id="id5203256">
<title>Removing Nodes from a Scene Graph</title>
</section>
<section href="ch06.html#LE79281-PARENT" id="LE79281-PARENT">
<title>Arrangement of Nodes</title>
</section>
</section>
<section href="ch06.html#LE28441-PARENT" id="LE28441-PARENT">
<title>Loading a Scene Graph</title>
<figure href="ch06.html#id5203580" id="id5203580">
<title>Figure 6-2. Loading Scene Graphs</title>
</figure>
<table href="ch06.html#id5203663" id="id5203663">
<title>Table 6-2. Supported Scene Graph File Formats</title>
</table>
<section href="ch06.html#id5203950" id="id5203950">
<title>Finding Scene Graph Files</title>
</section>
</section>
<section href="ch06.html#LE55784-PARENT" id="LE55784-PARENT">
<title>Saving a Scene Graph</title>
</section>
<section href="ch06.html#LE37245-PARENT" id="LE37245-PARENT">
<title>Scene Graph Traversals</title>
<section href="ch06.html#id5204387" id="id5204387">
<title>Pipelined Traversals</title>
<figure href="ch06.html#id5204553" id="id5204553">
<title>Figure 6-3. Processes Acting on Scene Graph</title>
</figure>
</section>
<section href="ch06.html#id5204575" id="id5204575">
<title>Traversal Order</title>
<figure href="ch06.html#id5204610" id="id5204610">
<title>Figure 6-4. Scene Graph Traversal Flow</title>
</figure>
</section>
</section>
<section href="ch06.html#LE92580-PARENT" id="LE92580-PARENT">
<title>Customizing OpenGL Performer Traversals</title>
<section href="ch06.html#id5204664" id="id5204664">
<title>Setting Up Node Callbacks</title>
<section href="ch06.html#id5204876" id="id5204876">
<title>Passing Data to Traversal Callback Functions</title>
</section>
<section href="ch06.html#id5204947" id="id5204947">
<title>Return Values for Traversal Callback Functions</title>
</section>
</section>
<section href="ch06.html#id5205018" id="id5205018">
<title>Sample Customized Traversals</title>
<table href="ch06.html#id5205122" id="id5205122">
<title>Table 6-3. General User Traversals</title>
</table>
</section>
</section>
</chapter>
<chapter href="ch07.html" id="LE69066-PARENT">
<title>Chapter 7. Creating Geometry with pfGeoSet</title>
<section href="ch07.html#LE63743-PARENT" id="LE63743-PARENT">
<title>pfGeoSet Overview</title>
</section>
<section href="ch07.html#LE70163-PARENT" id="LE70163-PARENT">
<title>Creating a pfGeoSet</title>
<section href="ch07.html#id5206059" id="id5206059">
<title>Creating a pfGeoSet Object</title>
</section>
<section href="ch07.html#id5206075" id="id5206075">
<title>Setting the Primitive Type</title>
<figure href="ch07.html#id5206330" id="id5206330">
<title>Figure 7-1. Primitives</title>
</figure>
</section>
<section href="ch07.html#id5206362" id="id5206362">
<title>Setting the Number of Primitives</title>
</section>
<section href="ch07.html#id5206413" id="id5206413">
<title>Setting the Number of Vertices Per Stripped Primitive</title>
</section>
</section>
<section href="ch07.html#LE88294-PARENT" id="LE88294-PARENT">
<title>Attributes of pfGeoSet Primitives</title>
<figure href="ch07.html#id5206703" id="id5206703">
<title>Figure 7-2. Arrays of Stripped Primitives</title>
</figure>
<section href="ch07.html#id5206748" id="id5206748">
<title>Setting the Attributes</title>
</section>
<section href="ch07.html#id5206877" id="id5206877">
<title>Attribute Bindings</title>
<table href="ch07.html#id5207030" id="id5207030">
<title>Table 7-1.  Possible Bindings Per Attribute Type</title>
</table>
</section>
<section href="ch07.html#LE25882-PARENT" id="LE25882-PARENT">
<title>Indexed Arr
ays</title>
<figure href="ch07.html#id5207342" id="id5207342">
<title>Figure 7-3. Indexing Arrays</title>
</figure>
<figure href="ch07.html#id5207435" id="id5207435">
<title>Figure 7-4. Deciding whether to Index Attributes</title>
</figure>
</section>
<section href="ch07.html#LE24177-PARENT" id="LE24177-PARENT">
<title>Packed Attributes</title>
</section>
<section href="ch07.html#id5207697" id="id5207697">
<title>Drawing and Printing a pfGeoSet</title>
</section>
</section>
<section href="ch07.html#LE22791-PARENT" id="LE22791-PARENT">
<title>Placing Geometry in a Scene Graph</title>
<figure href="ch07.html#id5207928" id="id5207928">
<title>Figure 7-5. Geometry Objects</title>
</figure>
</section>
<section href="ch07.html#LE86542-PARENT" id="LE86542-PARENT">
<title>Creating Common Geometric Objects</title>
<section href="ch07.html#id5208118" id="id5208118">
<title>Utilities to Create Common Geometric Objects</title>
<table href="ch07.html#id5208159" id="id5208159">
<title>Table 7-2.  Common Geometric Objects</title>
</table>
</section>
</section>
</chapter>
<chapter href="ch08.html" id="LE69018-PARENT">
<title>Chapter 8. Specifying the Appearance of Geometry with pfState and pfGeoState</title>
<section href="ch08.html#LE55225-PARENT" id="LE55225-PARENT">
<title>Setting the Graphics State</title>
<section href="ch08.html#id5208673" id="id5208673">
<title>Global State</title>
</section>
<section href="ch08.html#id5208864" id="id5208864">
<title>Defining a pfGeoState</title>
<section href="ch08.html#id5208967" id="id5208967">
<title>Setting pfGeoState Values for a Scene</title>
</section>
<section href="ch08.html#id5209002" id="id5209002">
<title>pfGeoStates and pfGeoSets</title>
</section>
<section href="ch08.html#id5209096" id="id5209096">
<title>Optimizing Graphics State Changes</title>
</section>
</section>
<section href="ch08.html#id5209130" id="id5209130">
<title>Setting Modal pfGeoState Values</title>
<table href="ch08.html#id5209185" id="id5209185">
<title>Table 8-1. Graphic States </title>
</table>
<section href="ch08.html#LE25695-PARENT" id="LE25695-PARENT">
<title>pfTransparency</title>
</section>
<section href="ch08.html#LE57803-PARENT" id="LE57803-PARENT">
<title>pfDecal</title>
</section>
<section href="ch08.html#LE34819-PARENT" id="LE34819-PARENT">
<title>pfAlphaFunc</title>
</section>
<section href="ch08.html#id5210208" id="id5210208">
<title>Alpha Func Modes</title>
</section>
</section>
<section href="ch08.html#id5210428" id="id5210428">
<title>Setting pfGeoState Attributes</title>
<table href="ch08.html#id5210516" id="id5210516">
<title>Table 8-2. Attribute pfGeoState Values</title>
</table>
</section>
</section>
<section href="ch08.html#LE17439-PARENT" id="LE17439-PARENT">
<title>Using Textures</title>
<figure href="ch08.html#id5210957" id="id5210957">
<title>Figure 8-1. Applying Textures to Geometries</title>
</figure>
<section href="ch08.html#id5211049" id="id5211049">
<title>Enabling Texture Mapping</title>
</section>
<section href="ch08.html#id5211131" id="id5211131">
<title>Creating a Texture Object</title>
</section>
<section href="ch08.html#id5211163" id="id5211163">
<title>Loading an Image as a Texture</title>
<section href="ch08.html#LE36933-PARENT" id="LE36933-PARENT">
<title>Preloading Textures</title>
</section>
</section>
<section href="ch08.html#id5211341" id="id5211341">
<title>Specifying Texture Attribute</title>
</section>
<section href="ch08.html#LE33295-PARENT" id="LE33295-PARENT">
<title>Specifying Texture Formats</title>
</section>
<section href="ch08.html#id5211793" id="id5211793">
<title>Setting the Texture Environment</title>
</section>
<section href="ch08.html#id5211956" id="id5211956">
<title>Setting the Texture Coordinates</title>
<figure href="ch08.html#id5211999" id="id5211999">
<title>Figure 8-2. Texture Coordinates</title>
</figure>
</section>
</section>
<section href="ch08.html#LE91014-PARENT" id="LE91014-PARENT">
<title>Specifying the Material</title>
<figure href="ch08.html#id5212311" id="id5212311">
<title>Figure 8-3. Light Characteristics</title>
</figure>
<section href="ch08.html#id5212332" id="id5212332">
<title>Specifying the Color and Shininess</title>
<section href="ch08.html#id5212475" id="id5212475">
<title>Color Mode</title>
</section>
<section href="ch08.html#id5212519" id="id5212519">
<title>Material Side</title>
</section>
</section>
</section>
<section href="ch08.html#LE92684-PARENT" id="LE92684-PARENT">
<title>Specifying Lighting</title>
</section>
</chapter>
<chapter href="ch09.html" id="LE93382-PARENT">
<title>Chapter 9. Placing Geometry in a Scene </title>
<section href="ch09.html#LE74449-PARENT" id="LE74449-PARENT">
<title>World Space and Object Space</title>
<figure href="ch09.html#id5213218" id="id5213218">
<title>Figure 9-1. Shared Space</title>
</figure>
<section href="ch09.html#id5213239" id="id5213239">
<title>Transformation Node Isolation</title>
</section>
<section href="ch09.html#id5213269" id="id5213269">
<title>World Space</title>
</section>
</section>
<section href="ch09.html#LE54934-PARENT" id="LE54934-PARENT">
<title>Transformation Nodes</title>
<section href="ch09.html#id5213393" id="id5213393">
<title>Transformation Node Functionality</title>
</section>
<section href="ch09.html#id5213412" id="id5213412">
<title>Ordering Transformation Nodes in the Scene Graph</title>
<figure href="ch09.html#id5213433" id="id5213433">
<title>Figure 9-2. Order of Transformations</title>
</figure>
</section>
</section>
<section href="ch09.html#LE32663-PARENT" id="LE32663-PARENT">
<title>Using pfFCS</title>
<figure href="ch09.html#id5213542" id="id5213542">
<title>Figure 9-3. pfEngine Drives a pfFlux Node Animating a pfFCS Node</title>
</figure>
<section href="ch09.html#id5213594" id="id5213594">
<title>pfFCS, pfFlux, and pfEngine Example</title>
<example href="ch09.html#LE53363-PARENT" id="LE53363-PARENT">
<title>Example 9-1. Connecting Engines and Fluxes</title>
</example>
</section>
</section>
<section href="ch09.html#LE95066-PARENT" id="LE95066-PARENT">
<title>Using DCS Nodes</title>
<section href="ch09.html#id5213663" id="id5213663">
<title>Creating a DCS Node</title>
</section>
<section href="ch09.html#id5213678" id="id5213678">
<title>Setting the DCS Node</title>
<section href="ch09.html#id5213734" id="id5213734">
<title>Using pfDCSCoord</title>
</section>
</section>
<section href="ch09.html#id5213765" id="id5213765">
<title>Optimizing the Use of DCS Nodes</title>
</section>
</section>
<section href="ch09.html#LE73728-PARENT" id="LE73728-PARENT">
<title>Using SCS Nodes</title>
<section href="ch09.html#id5213866" id="id5213866">
<title>Creating a SCS Node</title>
</section>
<section href="ch09.html#id5213889" id="id5213889">
<title>Setting the SCS Node</title>
<section href="ch09.html#id5213983" id="id5213983">
<title>Setting the First Transformation Matrix</title>
</section>
<section href="ch09.html#id5214011" id="id5214011">
<title>Setting the Remaining Transformation Matrices</title>
</section>
</section>
<section href="ch09.html#id5214052" id="id5214052">
<title>Optimizing SCS Transformations</title>
<section href="ch09.html#id5214110" id="id5214110">
<title>pfFlatten</title>
<figure href="ch09.html#id5214176" id="id5214176">
<title>Figure 9-4. pfFlatten</title>
</figure>
</section>
<section href="ch09.html#LE23827-PARENT" id="LE23827-PARENT">
<title>pfdCleanTree</title>
<figure href="ch09.html#id5214286" id="id5214286">
<title>Figure 9-5. pfdCleanTree</title>
</figure>
</section>
</section>
</section>
</chapter>
<chapter href="ch10.html" id="LE35071-PARENT">
<title>Chapter 10. Controlling Frame Rate</title>
<section href="ch10.html#LE39832-PARENT" id="LE39832-PARENT">
<title>Double Buffering</title>
<figure href="ch10.html#id5214553" id="id5214553">
<title>Figure 10-1. Double Buffering</title>
</figure>
</section>
<section href="ch10.html#LE22667-PARENT" id="LE22667-PARENT">
<title>Specifying a Target Frame Rate</title>
<section href="ch10.html#id5214650" id="id5214650">
<title>pfFrameRate</title>
<figure href="ch10.html#id5214684" id="id5214684">
<title>Figure 10-2. Frame Rate</title>
</figure>
</section>
<section href="ch10.html#id5214736" id="id5214736">
<title>pfFieldRate</title>
</section>
</section>
<section href="ch10.html#LE94040-PARENT" id="LE94040-PARENT">
<title>Frame Synchronization</title>
<section href="ch10.html#id5214812" id="id5214812">
<title>Phase Control</title>
<figure href="ch10.html#id5214927" id="id5214927">
<title>Figure 10-3. Phase Control over Three Frames</title>
</figure>
</section>
</section>
<section href="ch10.html#LE50000-PARENT" id="LE50000-PARENT">
<title>Adjusting the Frame Rate Automatically</title>
<section href="ch10.html#id5215013" id="id5215013">
<title>Stress Filters</title>
</section>
<section href="ch10.html#id5215057" id="id5215057">
<title>
Dynamic Video Resolution</title>
<section href="ch10.html#id5215127" id="id5215127">
<title>Setting the DVR Stress Filter</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch11.html" id="LE43779-PARENT">
<title>Chapter 11. Multiprocessing</title>
<section href="ch11.html#LE32057-PARENT" id="LE32057-PARENT">
<title>OpenGL Performer Stages</title>
<figure href="ch11.html#id5215404" id="id5215404">
<title>Figure 11-1. OpenGL Performer Stages</title>
</figure>
<section href="ch11.html#id5215431" id="id5215431">
<title>Optional, Asynchronous Stages</title>
<section href="ch11.html#id5215451" id="id5215451">
<title>ISECT Stage</title>
</section>
<section href="ch11.html#id5215495" id="id5215495">
<title>DBASE Stage</title>
</section>
<section href="ch11.html#id5215518" id="id5215518">
<title>COMPUTE Stage</title>
</section>
</section>
</section>
<section href="ch11.html#LE73478-PARENT" id="LE73478-PARENT">
<title>Benefits of Multiprocessing </title>
<figure href="ch11.html#id5215570" id="id5215570">
<title>Figure 11-2. Multiprocessing in the Graphics Pipeline</title>
</figure>
</section>
<section href="ch11.html#LE15518-PARENT" id="LE15518-PARENT">
<title>Shared Memory</title>
<figure href="ch11.html#id5215687" id="id5215687">
<title>Figure 11-3. Shared Memory Arena</title>
</figure>
</section>
<section href="ch11.html#LE28183-PARENT" id="LE28183-PARENT">
<title>Printing Process States</title>
</section>
<section href="ch11.html#LE41362-PARENT" id="LE41362-PARENT">
<title>Setting Up Multiprocessing</title>
<section href="ch11.html#id5215819" id="id5215819">
<title>Multiprocessing Models</title>
<table href="ch11.html#id5215835" id="id5215835">
<title>Table 11-1. Multiprocessing Tokens</title>
</table>
<section href="ch11.html#id5216163" id="id5216163">
<title></title>
<figure href="ch11.html#id5216183" id="id5216183">
<title>Figure 11-4. PFMP_CULLoDRAW</title>
</figure>
</section>
</section>
<section href="ch11.html#id5216207" id="id5216207">
<title>Common Multiprocessing Models</title>
<figure href="ch11.html#id5216222" id="id5216222">
<title>Figure 11-5. Four Common Multiprocessing Models</title>
</figure>
</section>
<section href="ch11.html#id5216301" id="id5216301">
<title>Default Processing Models</title>
<section href="ch11.html#id5216346" id="id5216346">
<title>One pfPipe</title>
<table href="ch11.html#id5216364" id="id5216364">
<title>Table 11-2. Default Multiprocessing Models</title>
</table>
</section>
<section href="ch11.html#id5216509" id="id5216509">
<title>Multiple pfPipes</title>
</section>
</section>
<section href="ch11.html#id5216525" id="id5216525">
<title>Choosing a Multiprocessing Model</title>
</section>
</section>
<section href="ch11.html#LE16282-PARENT" id="LE16282-PARENT">
<title>Automatic Multiprocessing</title>
</section>
</chapter>
<chapter href="ch12.html" id="LE64711-PARENT">
<title>Chapter 12. Database Paging</title>
<section href="ch12.html#LE97984-PARENT" id="LE97984-PARENT">
<title>Anticipating Paging</title>
<figure href="ch12.html#id5216693" id="id5216693">
<title>Figure 12-1. Memory Pages</title>
</figure>
</section>
<section href="ch12.html#LE28386-PARENT" id="LE28386-PARENT">
<title>Database Process</title>
<section href="ch12.html#id5216789" id="id5216789">
<title>Handling Memory for the DBASE Process</title>
</section>
<section href="ch12.html#id5216854" id="id5216854">
<title>Changing the Scene Graph</title>
<section href="ch12.html#id5216936" id="id5216936">
<title>Caching Scene Graph Changes</title>
<figure href="ch12.html#id5216989" id="id5216989">
<title>Figure 12-2. Creating the Buffer and Changes</title>
</figure>
</section>
<section href="ch12.html#id5217011" id="id5217011">
<title>Linking Buffer Changes to the Scene Graph</title>
</section>
<section href="ch12.html#id5217057" id="id5217057">
<title>Deleting Old Data</title>
<figure href="ch12.html#id5217088" id="id5217088">
<title>Figure 12-3. Linking and Deleting Nodes</title>
</figure>
</section>
<section href="ch12.html#id5217118" id="id5217118">
<title>Merging Changes</title>
<figure href="ch12.html#id5217196" id="id5217196">
<title>Figure 12-4. Merging Scene Graph Changes</title>
</figure>
</section>
<section href="ch12.html#id5217243" id="id5217243">
<title>Cleaning Up the Cache</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch13.html" id="LE21608-PARENT">
<title>Chapter 13. Intersection Testing</title>
<figure href="ch13.html#id5217423" id="id5217423">
<title>Figure 13-1. Approximating a Shape with Segments</title>
</figure>
<section href="ch13.html#LE59219-PARENT" id="LE59219-PARENT">
<title>Creating an ISECT Process</title>
</section>
<section href="ch13.html#LE23135-PARENT" id="LE23135-PARENT">
<title>Constructing a Segment Set for pfNodeIsectSegs()</title>
<section href="ch13.html#id5217730" id="id5217730">
<title>Setting the Mode</title>
<table href="ch13.html#id5217749" id="id5217749">
<title>Table 13-1. Segment Set Modes</title>
</table>
</section>
<section href="ch13.html#id5217948" id="id5217948">
<title>Intersection Masks</title>
</section>
<section href="ch13.html#id5218062" id="id5218062">
<title>Creating the Segment Array</title>
</section>
<section href="ch13.html#id5218089" id="id5218089">
<title>The pfSegSet Bound</title>
</section>
</section>
<section href="ch13.html#LE90550-PARENT" id="LE90550-PARENT">
<title>Testing for Intersections</title>
<figure href="ch13.html#id5218206" id="id5218206">
<title>Figure 13-2. Hits Array</title>
</figure>
<section href="ch13.html#id5218232" id="id5218232">
<title>Intersection Information</title>
<table href="ch13.html#id5218299" id="id5218299">
<title>Table 13-2. Hit Information</title>
</table>
<section href="ch13.html#id5218540" id="id5218540">
<title>Determining If a Segment Was Hit</title>
</section>
<section href="ch13.html#id5218559" id="id5218559">
<title>Testing for Valid Information</title>
</section>
<section href="ch13.html#id5218698" id="id5218698">
<title>Retrieving the Intersection Location</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch14.html" id="LE61890-PARENT">
<title>Chapter 14. Creating a User Interface</title>
<section href="ch14.html#LE37781-PARENT" id="LE37781-PARENT">
<title>Traveling through a Scene</title>
<section href="ch14.html#LE46932-PARENT" id="LE46932-PARENT">
<title>Creating a Transformer</title>
<figure href="ch14.html#id5219047" id="id5219047">
<title>Figure 14-1. Shared Memory Arena</title>
</figure>
</section>
<section href="ch14.html#LE15635-PARENT" id="LE15635-PARENT">
<title>Initializing the Transformer</title>
</section>
<section href="ch14.html#LE41016-PARENT" id="LE41016-PARENT">
<title>Setting Up Transformer Input and Output</title>
</section>
<section href="ch14.html#LE10656-PARENT" id="LE10656-PARENT">
<title>Updating the Channel</title>
</section>
<section href="ch14.html#LE76949-PARENT" id="LE76949-PARENT">
<title>Scaling the Motion </title>
</section>
</section>
<section href="ch14.html#LE26725-PARENT" id="LE26725-PARENT">
<title>Example of Implementing User Interaction</title>
<example href="ch14.html#LE28202-PARENT" id="LE28202-PARENT">
<title>Example 14-1. Implementing User Interaction</title>
</example>
</section>
</chapter>
<chapter href="ch15.html" id="LE59629-PARENT">
<title>Chapter 15. Optimizing Performance</title>
<section href="ch15.html#LE80982-PARENT" id="LE80982-PARENT">
<title>General Performance Tips</title>
<section href="ch15.html#id5219983" id="id5219983">
<title>Displaying Statistics</title>
<figure href="ch15.html#id5220080" id="id5220080">
<title>Figure 15-1. Statistics Display</title>
</figure>
<figure href="ch15.html#id5220113" id="id5220113">
<title>Figure 15-2. Various Statistical Modes</title>
</figure>
</section>
<section href="ch15.html#id5220155" id="id5220155">
<title>Rendering the Statistics Tool</title>
</section>
<section href="ch15.html#id5220170" id="id5220170">
<title>Specifying the Statistics to Gather</title>
<table href="ch15.html#id5220246" id="id5220246">
<title>Table 15-1. Statistics Class Table</title>
</table>
</section>
<section href="ch15.html#id5220430" id="id5220430">
<title>Reducing Bottlenecks</title>
</section>
</section>
<section href="ch15.html#LE65773-PARENT" id="LE65773-PARENT">
<title>Culling Unseen Shapes</title>
<section href="ch15.html#id5220712" id="id5220712">
<title>CULL Process</title>
<section href="ch15.html#id5220738" id="id5220738">
<title>Evaluating Bounding Spheres</title>
<figure href="ch15.html#id5220825" id="id5220825">
<title>Figure 15-3. Culling Process</title>
</figure>
</section>
<section href="ch15.html#id5220847" id="id5220847">
<title>Optimizing the CULL Process</title>
</section>
</section>
<section href="ch15.html#LE49153-PARENT" id="LE49153-PARENT">
<title>Face 
Culling</title>
</section>
<section href="ch15.html#LE86985-PARENT" id="LE86985-PARENT">
<title>Rendering Slices of Shapes</title>
<section href="ch15.html#id5221126" id="id5221126">
<title>Rotating the Slice</title>
</section>
</section>
</section>
<section href="ch15.html#LE67379-PARENT" id="LE67379-PARENT">
<title>Maintaining Frame Rate Using D
VR</title>
<figure href="ch15.html#id5221276" id="id5221276">
<title>Figure 15-4. Real Size of Viewport Rendered under Increasing Stress</title>
</figure>
<section href="ch15.html#id5221305" id="id5221305">
<title>DVR Scaling</title>
</section>
</section>
<section href="ch15.html#LE38093-PARENT" id="LE38093-PARENT">
<title>Level of Detail Reduced for Performance</title>
<section href="ch15.html#id5221504" id="id5221504">
<title>Choosing a Child Node Based on Range</title>
<section href="ch15.html#id5221546" id="id5221546">
<title>Setting the Range</title>
</section>
<section href="ch15.html#id5221634" id="id5221634">
<title>Disregarding LODs</title>
</section>
</section>
<section href="ch15.html#id5221706" id="id5221706">
<title>Transitioning Between Levels of Detail</title>
<figure href="ch15.html#id5221764" id="id5221764">
<title>Figure 15-5. pfLOD Ranges</title>
</figure>
<section href="ch15.html#LE40254-PARENT" id="LE40254-PARENT">
<title>Enabling Fading</title>
</section>
<section href="ch15.html#LE95167-PARENT" id="LE95167-PARENT">
<title>Customizing the Fade </title>
</section>
</section>
<section href="ch15.html#LE82222-PARENT" id="LE82222-PARENT">
<title>Customizing LOD Actions</title>
</section>
<section href="ch15.html#id5222055" id="id5222055">
<title>Scaling LOD Ranges</title>
</section>
<section href="ch15.html#id5222087" id="id5222087">
<title>Overriding Stress Effects</title>
</section>
<section href="ch15.html#id5222164" id="id5222164">
<title>Selecting LODs Based on Viewport</title>
</section>
</section>
<section href="ch15.html#LE52240-PARENT" id="LE52240-PARENT">
<title>Reducing System Stress</title>
<section href="ch15.html#id5222252" id="id5222252">
<title>Setting the Stress Filter</title>
<section href="ch15.html#id5222356" id="id5222356">
<title>Stress Volatility</title>
</section>
<section href="ch15.html#id5222395" id="id5222395">
<title>Dividing Rendering Time</title>
</section>
<section href="ch15.html#id5222452" id="id5222452">
<title>Setting the Stress Value Explicitly</title>
</section>
</section>
</section>
<section href="ch15.html#LE35012-PARENT" id="LE35012-PARENT">
<title>Optimizing pfGeoSet Performance</title>
</section>
<section href="ch15.html#LE20013-PARENT" id="LE20013-PARENT">
<title>Optimizing Graphics State Changes</title>
<section href="ch15.html#id5222578" id="id5222578">
<title>Sharing Common pfGeoStates</title>
</section>
<section href="ch15.html#LE39901-PARENT" id="LE39901-PARENT">
<title>Computing the Optimal, Global Graphics State</title>
</section>
</section>
<section href="ch15.html#LE15824-PARENT" id="LE15824-PARENT">
<title>Optimizing Texture Handling</title>
</section>
<section href="ch15.html#LE31700-PARENT" id="LE31700-PARENT">
<title>Optimizing File Loading</title>
<section href="ch15.html#id5222878" id="id5222878">
<title>
pfconv</title>
</section>
<section href="ch15.html#id5222960" id="id5222960">
<title>
pficonv</title>
</section>
</section>
</chapter>
</part>
<appendix href="apa.html" id="LE70231-PARENT">
<title>Appendix A. Building a Visual Simulation Application Using libpf</title>
<section href="apa.html#id5223100" id="id5223100">
<title>Overview</title>
<example href="apa.html#LE26493-PARENT" id="LE26493-PARENT">
<title>Example A-1. Structure of an OpenGL Performer Application</title>
</example>
</section>
<section href="apa.html#id5224061" id="id5224061">
<title>Setting Up the Basic Elements</title>
<section href="apa.html#id5224075" id="id5224075">
<title>Using OpenGL Performer Header Files</title>
</section>
<section href="apa.html#LE63889-PARENT" id="LE63889-PARENT">
<title>Initializing and Configuring OpenGL Performer</title>
<section href="apa.html#id5224249" id="id5224249">
<title>Initializing Shared Memory</title>
</section>
<section href="apa.html#id5224326" id="id5224326">
<title>Initializing Processes</title>
</section>
</section>
<section href="apa.html#id5224536" id="id5224536">
<title>Setti
ng Up a Pipe</title>
<example href="apa.html#LE33887-PARENT" id="LE33887-PARENT">
<title>Example A-2. pfStageConfigFunc() Callback</title>
</example>
<example href="apa.html#LE78943-PARENT" id="LE78943-PARENT">
<title>Example A-3. Sample OpenPipeline() Routine</title>
</example>
</section>
<section href="apa.html#LE26044-PARENT" id="LE26044-PARENT">
<title>Frame Rate and Synchronization</title>
</section>
<section href="apa.html#id5224969" id="id5224969">
<title>Setting Up a Channel</title>
</section>
<section href="apa.html#id5225061" id="id5225061">
<title>Creating and Loading a Scene Graph</title>
<section href="apa.html#id5225089" id="id5225089">
<title>Creating a Database</title>
</section>
<section href="apa.html#LE28557-PARENT" id="LE28557-PARENT">
<title>Setting the Search Path for Database Files</title>
</section>
</section>
<section href="apa.html#id5225460" id="id5225460">
<title>Simulation Loop</title>
</section>
</section>
<section href="apa.html#id5225706" id="id5225706">
<title>Performance</title>
</section>
<section href="apa.html#LE88354-PARENT" id="LE88354-PARENT">
<title>Compiling and Linking OpenGL Performer Applications</title>
<section href="apa.html#id5225803" id="id5225803">
<title>Required Libraries</title>
</section>
<section href="apa.html#id5226380" id="id5226380">
<title>Dynamic Shared Objects (DSOs)</title>
</section>
<section href="apa.html#id5226442" id="id5226442">
<title>Debug and Static Libraries</title>
</section>
<section href="apa.html#id5226508" id="id5226508">
<title>Using Compiler Flags</title>
</section>
<section href="apa.html#id5226642" id="id5226642">
<title>MIPS-3, MIPS-4, and 64-Bit Compilation</title>
</section>
<section href="apa.html#id5226735" id="id5226735">
<title>Using OpenGL Performer From C++</title>
</section>
</section>
</appendix>
<appendix href="apb.html" id="LE12563-PARENT">
<title>Appendix B. Building a Visual Simulation Application Using libpfv</title>
<section href="apb.html#LE24127-PARENT" id="LE24127-PARENT">
<title>Overview</title>
</section>
<section href="apb.html#LE32334-PARENT" id="LE32334-PARENT">
<title>The Simplest pfvViewer Program</title>
</section>
<section href="apb.html#LE14996-PARENT" id="LE14996-PARENT">
<title>Adding Interaction to a pfvViewer Program</title>
</section>
<section href="apb.html#LE26138-PARENT" id="LE26138-PARENT">
<title>Reading XML Configuration Files</title>
</section>
<section href="apb.html#LE16445-PARENT" id="LE16445-PARENT">
<title>Module Scoping, Multiple Worlds and Multiple Views</title>
</section>
<section href="apb.html#LE41867-PARENT" id="LE41867-PARENT">
<title>Extending a pfvViewer&#8212;Writing Custom Modules</title>
</section>
<section href="apb.html#LE38465-PARENT" id="LE38465-PARENT">
<title> Extending a pfvViewer&#8212;Module Entry Points</title>
</section>
<section href="apb.html#LE35452-PARENT" id="LE35452-PARENT">
<title>Picking, Selection, and Interaction</title>
</section>
<section href="apb.html#LE25298-PARENT" id="LE25298-PARENT">
<title>More Sample Programs, Configuration Files, and Source Code</title>
</section>
</appendix>
<appendix href="apc.html" id="LE77251-PARENT">
<title>Appendix C. Image Gallery</title>
<figure href="apc.html#id5229530" id="id5229530">
<title>Figure C-1. Simulated View of an Atrium</title>
</figure>
<figure href="apc.html#id5229612" id="id5229612">
<title>Figure C-2. Another Simulated View of the Atrium</title>
</figure>
<figure href="apc.html#id5229654" id="id5229654">
<title>Figure C-3. Simulated View of a Castle</title>
</figure>
<figure href="apc.html#id5229718" id="id5229718">
<title>Figure C-4. Simulated Hallway View</title>
</figure>
<figure href="apc.html#id5229759" id="id5229759">
<title>Figure C-5. Simulated Hotel Lobby</title>
</figure>
<figure href="apc.html#id5229800" id="id5229800">
<title>Figure C-6. Simulated Waiting Room</title>
</figure>
<figure href="apc.html#id5229879" id="id5229879">
<title>Figure C-7. Simulated Conference Room</title>
</figure>
<figure href="apc.html#id5229918" id="id5229918">
<title>Figure C-8. Parliament Stairway</title>
</figure>
<figure href="apc.html#id5230036" id="id5230036">
<title>Figure C-9. Unity Temple Interior</title>
</figure>
<figure href="apc.html#id5230101" id="id5230101">
<title>Figure C-10. Yosemite</title>
</figure>
<figure href="apc.html#id5230139" id="id5230139">
<title>Figure C-11. DI-Guy</title>
</figure>
<figure href="apc.html#id5230174" id="id5230174">
<title>Figure C-12. Palace</title>
</figure>
<figure href="apc.html#id5230209" id="id5230209">
<title>Figure C-13. Seattle-Tacoma International Airport</title>
</figure>
<figure href="apc.html#id5230265" id="id5230265">
<title>Figure C-14. Hasparen</title>
</figure>
<figure href="apc.html#id5230299" id="id5230299">
<title>Figure C-15. Clouds</title>
</figure>
<figure href="apc.html#id5230386" id="id5230386">
<title>Figure C-16. Ocean and Marine Effects Simulation</title>
</figure>
<figure href="apc.html#id5230429" id="id5230429">
<title>Figure C-17. Night Image</title>
</figure>
</appendix>
<glossary href="go01.html" id="id5230486">
<title>Glossary</title>
</glossary>
<index href="ix01.html" id="sgi-index">
<title>Index</title>
</index>
</book>
</toc>
