<?xml version="1.0" encoding="ISO-8859-1"?>
<toc>
<book href="index.html" id="id5381062">
<title>OpenGL Performer&#8482;  
Programmer's Guide</title>
<bookinfo href="front.html">
<title>Front Matter</title>
</bookinfo>
<preface href="pr01.html" id="id5439442">
<title>New Features in This Guide</title>
</preface>
<preface href="pr02.html" id="LE90217-PARENT">
<title>About This Guide</title>
<section href="pr02.html#id5179137" id="id5179137">
<title>Why Use OpenGL       Performer?</title>
</section>
<section href="pr02.html#id5179369" id="id5179369">
<title>What You Should Know Before Reading This Guide</title>
</section>
<section href="pr02.html#id5179410" id="id5179410">
<title>How to Use This Guide</title>
<section href="pr02.html#id5179444" id="id5179444">
<title>What This Guide Contains</title>
</section>
<section href="pr02.html#id5179838" id="id5179838">
<title>Sample Applications</title>
</section>
<section href="pr02.html#id5179877" id="id5179877">
<title>Conventions</title>
</section>
</section>
<section href="pr02.html#id5180006" id="id5180006">
<title>Internet and Hardcopy Reading for the OpenGL Performer Series</title>
</section>
<section href="pr02.html#id5177378" id="id5177378">
<title>Reader Comments</title>
</section>
</preface>
<chapter href="ch01.html" id="LE57344-PARENT">
<title>Chapter 1. OpenGL Performer Programming Interface</title>
<section href="ch01.html#LE23469-PARENT" id="LE23469-PARENT">
<title>General Naming Conventions</title>
<section href="ch01.html#id5177574" id="id5177574">
<title>Prefixes</title>
</section>
<section href="ch01.html#id5177629" id="id5177629">
<title>Header Files</title>
</section>
<section href="ch01.html#id5177716" id="id5177716">
<title>Naming in C and C++</title>
</section>
<section href="ch01.html#id5177783" id="id5177783">
<title>Abbreviations</title>
</section>
<section href="ch01.html#id5177848" id="id5177848">
<title>Macros, Tokens, and Enums</title>
</section>
</section>
<section href="ch01.html#LE68778-PARENT" id="LE68778-PARENT">
<title>Class API</title>
<section href="ch01.html#id5177926" id="id5177926">
<title>O
bject Creation</title>
</section>
<section href="ch01.html#id5177962" id="id5177962">
<title>Set Routines</title>
</section>
<section href="ch01.html#id5177992" id="id5177992">
<title>Get Routines</title>
<section href="ch01.html#id5178016" id="id5178016">
<title>Getting Current In-Use Values</title>
</section>
</section>
<section href="ch01.html#id5178071" id="id5178071">
<title>Action Routines</title>
</section>
<section href="ch01.html#id5178114" id="id5178114">
<title>Enable and Disable of Modes</title>
</section>
<section href="ch01.html#id5178152" id="id5178152">
<title>Mode, Attribute, or Value</title>
</section>
</section>
<section href="ch01.html#LE25785-PARENT" id="LE25785-PARENT">
<title>Base Classes
</title>
<section href="ch01.html#id5178442" id="id5178442">
<title>Inheritance Graph</title>
<figure href="ch01.html#id5178473" id="id5178473">
<title>Figure 1-1. Partial Inheritance Graph of OpenGL Performer Data Types</title>
</figure>
</section>
<section href="ch01.html#id5178570" id="id5178570">
<title>libpr and libpf Objects</title>
</section>
<section href="ch01.html#id5187703" id="id5187703">
<title>User Data</title>
<example href="ch01.html#LE74828-PARENT" id="LE74828-PARENT">
<title>Example 1-1. How to Use User Data</title>
</example>
</section>
<section href="ch01.html#LE37855-PARENT" id="LE37855-PARENT">
<title>pfDelete() and Reference Counting</title>
<table href="ch01.html#id5187921" id="id5187921">
<title>Table 1-1. Routines that Modify libpr Object Reference Counts</title>
</table>
<example href="ch01.html#LE55683-PARENT" id="LE55683-PARENT">
<title>Example 1-2. Objects and Reference Counts</title>
</example>
<example href="ch01.html#LE12730-PARENT" id="LE12730-PARENT">
<title>Example 1-3. Using pfDelete() with libpr Objects</title>
</example>
<example href="ch01.html#LE35315-PARENT" id="LE35315-PARENT">
<title>Example 1-4. Using pfDelete() with libpf Objects</title>
</example>
</section>
<section href="ch01.html#id5188791" id="id5188791">
<title>Copying Objects with pfCopy()</title>
<example href="ch01.html#LE97628-PARENT" id="LE97628-PARENT">
<title>Example 1-5. Using pfCopy()</title>
</example>
</section>
<section href="ch01.html#id5188906" id="id5188906">
<title>Printing Objec
ts with 
pfPrint()</title>
</section>
<section href="ch01.html#id5189178" id="id5189178">
<title>Determining Ob
ject Type</title>
<example href="ch01.html#LE45205-PARENT" id="LE45205-PARENT">
<title>Example 1-6. General-Purpose Scene Graph Traverser</title>
</example>
</section>
</section>
</chapter>
<chapter href="ch02.html" id="LE47541-PARENT">
<title>Chapter 2. Setting Up the Display Environment</title>
<figure href="ch02.html#id5189578" id="id5189578">
<title>Figure 2-1. From Scene Graph to Visual Display</title>
</figure>
<section href="ch02.html#LE45430-PARENT" id="LE45430-PARENT">
<title>Using Pipes</title>
<section href="ch02.html#id5189853" id="id5189853">
<title>The Functional Stages of a Pipeline</title>
<figure href="ch02.html#id5189992" id="id5189992">
<title>Figure 2-2. Single Graphics Pipeline</title>
</figure>
<figure href="ch02.html#id5190075" id="id5190075">
<title>Figure 2-3. Dual Graphics Pipeline</title>
</figure>
</section>
<section href="ch02.html#id5190104" id="id5190104">
<title>Creating and Configuring a pfPipe</title>
</section>
<section href="ch02.html#id5190565" id="id5190565">
<title>Example of pfPipe Use</title>
<example href="ch02.html#LE25912-PARENT" id="LE25912-PARENT">
<title>Example 2-1. pfPipes in Action</title>
</example>
</section>
</section>
<section href="ch02.html#LE69820-PARENT" id="LE69820-PARENT">
<title>Using Channels</title>
<section href="ch02.html#LE73120-PARENT" id="LE73120-PARENT">
<title>Creating and
 Configuring a pfChannel</title>
</section>
<section href="ch02.html#id5190964" id="id5190964">
<title>Setting Up a Scene</title>
</section>
<section href="ch02.html#id5191134" id="id5191134">
<title>Setting Up a Viewport </title>
</section>
<section href="ch02.html#id5191234" id="id5191234">
<title>Setting Up a Viewing Frustum</title>
<figure href="ch02.html#id5191384" id="id5191384">
<title>Figure 2-4. Symmetric Viewing Frustum </title>
</figure>
<section href="ch02.html#id5191441" id="id5191441">
<title>Field&#8211;of&#8211;View</title>
</section>
<section href="ch02.html#id5191515" id="id5191515">
<title>Clipping Planes</title>
</section>
</section>
<section href="ch02.html#id5191592" id="id5191592">
<title>Setting Up a Viewpoint</title>
<figure href="ch02.html#id5191946" id="id5191946">
<title>Figure 2-5. Heading, Pitch, and Roll Angles</title>
</figure>
</section>
<section href="ch02.html#id5192323" id="id5192323">
<title>Example of Channel Use</title>
<example href="ch02.html#LE21330-PARENT" id="LE21330-PARENT">
<title>Example 2-2. Using pfChannels</title>
</example>
</section>
</section>
<section href="ch02.html#LE77886-PARENT" id="LE77886-PARENT">
<title>Controlling the Video Output</title>
</section>
<section href="ch02.html#LE27734-PARENT" id="LE27734-PARENT">
<title>Using Multiple Channels</title>
<section href="ch02.html#id5192727" id="id5192727">
<title>One Window per Pipe, Multiple Channels per Window</title>
<figure href="ch02.html#id5192754" id="id5192754">
<title>Figure 2-6. Single-Channel and Multiple-Channel Display</title>
</figure>
<example href="ch02.html#LE68998-PARENT" id="LE68998-PARENT">
<title>Example 2-3. Multiple Channels, One Channel per Pipe</title>
</example>
</section>
</section>
<section href="ch02.html#LE12587-PARENT" id="LE12587-PARENT">
<title>Using Channel Groups</title>
<table href="ch02.html#id5193408" id="id5193408">
<title>Table 2-1. Attributes in the Share Mask of a Channel Group</title>
</table>
<example href="ch02.html#LE61437-PARENT" id="LE61437-PARENT">
<title>Example 2-4. Channel Sharing</title>
</example>
<section href="ch02.html#id5193925" id="id5193925">
<title>Multiple Channels and Multiple Windows</title>
</section>
</section>
<section href="ch02.html#LE15174-PARENT" id="LE15174-PARENT">
<title>Importing OpenGL Multipipe SDK (MPK) Configuration Files</title>
<figure href="ch02.html#id5194604" id="id5194604">
<title>Figure 2-7. The libpfmpk Import Operation</title>
</figure>
</section>
</chapter>
<chapter href="ch03.html" id="LE62590-PARENT">
<title>Chapter 3. Nodes and Node Types</title>
<section href="ch03.html#LE88314-PARENT" id="LE88314-PARENT">
<title>Nodes</title>
<section href="ch03.html#id5195148" id="id5195148">
<title>Attribute Inheritance</title>
<section href="ch03.html#id5195178" id="id5195178">
<title>pfNode</title>
<figure href="ch03.html#id5195194" id="id5195194">
<title>Figure 3-1. Nodes in the OpenGL Performer Hierarchy</title>
</figure>
<table href="ch03.html#id5195251" id="id5195251">
<title>Table 3-1. OpenGL Performer Node Types</title>
</table>
</section>
</section>
<section href="ch03.html#LE71589-PARENT" id="LE71589-PARENT">
<title>pfNode</title>
<section href="ch03.html#id5196148" id="id5196148">
<title>pfNode Attributes</title>
</section>
<section href="ch03.html#id5196340" id="id5196340">
<title>pfNode Operations</title>
</section>
<section href="ch03.html#id5196497" id="id5196497">
<title>An Example of Scene Creation</title>
<example href="ch03.html#LE77614-PARENT" id="LE77614-PARENT">
<title>Example 3-1. Making a Scene</title>
</example>
</section>
</section>
<section href="ch03.html#id5196578" id="id5196578">
<title>pfGroup</title>
<table href="ch03.html#id5196609" id="id5196609">
<title>Table 3-2. pfGroup Functions</title>
</table>
<example href="ch03.html#LE37708-PARENT" id="LE37708-PARENT">
<title>Example 3-2. Hierarchy Construction Using Group Nodes</title>
</example>
</section>
</section>
<section href="ch03.html#LE43602-PARENT" id="LE43602-PARENT">
<title>Working with Nodes</title>
<section href="ch03.html#LE66595-PARENT" id="LE66595-PARENT">
<title>Instancing</title>
<section href="ch03.html#id5197273" id="id5197273">
<title>Shared Instancing</title>
<figure href="ch03.html#id5197338" id="id5197338">
<title>Figure 3-2. Shared Instances</title>
</figure>
</section>
<section href="ch03.html#id5197360" id="id5197360">
<title>Cloned Instancing</title>
<figure href="ch03.html#id5197454" id="id5197454">
<title>Figure 3-3. Cloned Instancing</title>
</figure>
<example href="ch03.html#LE52059-PARENT" id="LE52059-PARENT">
<title>Example 3-3. Creating Cloned Instances</title>
</example>
</section>
</section>
<section href="ch03.html#LE57136-PARENT" id="LE57136-PARENT">
<title>Bounding Volumes</title>
<example href="ch03.html#LE80154-PARENT" id="LE80154-PARENT">
<title>Example 3-4. Automatically Updating a Bounding Volume</title>
</example>
</section>
</section>
<section href="ch03.html#LE20344-PARENT" id="LE20344-PARENT">
<title>Node Types</title>
<section href="ch03.html#LE72214-PARENT" id="LE72214-PARENT">
<title>pfScene Nodes</title>
<section href="ch03.html#id5198044" id="id5198044">
<title>pfScene Default Rendering State</title>
</section>
</section>
<section href="ch03.html#LE57428-PARENT" id="LE57428-PARENT">
<title>pfSCS Nodes</title>
</section>
<section href="ch03.html#LE23947-PARENT" id="LE23947-PARENT">
<title>pfDCS Nodes</title>
<table href="ch03.html#id5198544" id="id5198544">
<title>Table 3-3. pfDCS Transformations</title>
</table>
</section>
<section href="ch03.html#id5198874" id="id5198874">
<title>pfFCS Nodes</title>
<table href="ch03.html#id5198922" id="id5198922">
<title>Table 3-4. pfFCS Functions</title>
</table>
</section>
<section href="ch03.html#id5199061" id="id5199061">
<title>pfDoubleSCS Nodes</title>
</section>
<section href="ch03.html#LE24884-PARENT" id="LE24884-PARENT">
<title>pfDoubleDCS Nodes</title>
<figure href="ch03.html#id5199457" id="id5199457">
<title>Figure 3-4. A Scenario for Using Double-Precision Nodes</title>
</figure>
<figure href="ch03.html#id5199520" id="id5199520">
<title>Figure 3-5. pfDoubleDCS Nodes in a Scene Graph</title>
</figure>
</section>
<section href="ch03.html#id5199588" id="id5199588">
<title>pfDoubleFCS Nodes</title>
</section>
<section href="ch03.html#id5199638" id="id5199638">
<title>pfSwitch Nodes</title>
</section>
<section href="ch03.html#LE69049-PARENT" id="LE69049-PARENT">
<title>pfSequence Nodes</title>
<table href="ch03.html#id5199922" id="id5199922">
<title>Table 3-5. pfSequence Functions</title>
</table>
<example href="ch03.html#LE68590-PARENT" id="LE68590-PARENT">
<title>Example 3-5. Using pfSwitch and pfSequence Nodes</title>
</example>
</section>
<section href="ch03.html#LE38460-PARENT" id="LE38460-PARENT">
<title>pfLOD Nodes</title>
<table href="ch03.html#id5200474" id="id5200474">
<title>Table 3-6. pfLOD Functions</title>
</table>
</section>
<section href="ch03.html#id5200788" id="id5200788">
<title>pfASD Nodes</title>
</section>
<section href="ch03.html#id5200808" id="id5200808">
<title>pfLayer Nodes</title>
<table href="ch03.html#id5200936" id="id5200936">
<title>Table 3-7. pfLayer Functions</title>
</table>
<example href="ch03.html#LE54929-PARENT" id="LE54929-PARENT">
<title>Example 3-6. Marking a Runway with a pfLayer Node</title>
</example>
</section>
<section href="ch03.html#LE67602-PARENT" id="LE67602-PARENT">
<title>pfGeode Nodes</title>
<table href="ch03.html#id5201397" id="id5201397">
<title>Table 3-8. pfGeode Functions</title>
</table>
<example href="ch03.html#LE30936-PARENT" id="LE30936-PARENT">
<title>Example 3-7. Adding pfGeoSets to a pfGeode</title>
</example>
</section>
<section href="ch03.html#id5201737" id="id5201737">
<title>pfText Nodes</title>
<table href="ch03.html#id5201850" id="id5201850">
<title>Table 3-9. pfText Functions</title>
</table>
<example href="ch03.html#LE37547-PARENT" id="LE37547-PARENT">
<title>Example 3-8. Adding pfStrings to a pfText</title>
</example>
</section>
<section href="ch03.html#LE28360-PARENT" id="LE28360-PARENT">
<title>pfBillboard Nodes</title>
<table href="ch03.html#id5202440" id="id5202440">
<title>Table 3-10. pfBillboard Functions</title>
</table>
<example href="ch03.html#LE73105-PARENT" id="LE73105-PARENT">
<title>Example 3-9. Setting Up a pfBillboard</title>
</example>
</section>
<section href="ch03.html#id5202834" id="id5202834">
<title>pfPartition Nodes</title>
<table href="ch03.html#id5202984" id="id5202984">
<title>Table 3-11. pfPartition Functions</title>
</table>
<example href="ch03.html#LE52200-PARENT" id="LE52200-PARENT">
<title>Example 3-10. Setting Up a pfPartition</title>
</example>
</section>
</section>
<section href="ch03.html#id5203407" id="id5203407">
<title>Sample Program</title>
<example href="ch03.html#LE60912-PARENT" id="LE60912-PARENT">
<title>Example 3-11. Inheritance Demonstration Program</title>
</example>
</section>
</chapter>
<chapter href="ch04.html" id="LE79449-PARENT">
<title>Chapter 4. Database Traversal</title>
<table href="ch04.html#id5203977" id="id5203977">
<title>Table 4-1. Traversal Attributes for the Major Traversals</title>
</table>
<section href="ch04.html#LE54484-PARENT" id="LE54484-PARENT">
<title>Scene Graph Hierarchy</title>
<section href="ch04.html#LE79088-PARENT" id="LE79088-PARENT">
<title>Database Traversals</title>
</section>
<section href="ch04.html#id5204684" id="id5204684">
<title>State Inheritance</title>
</section>
<section href="ch04.html#id5204862" id="id5204862">
<title>Database Organization</title>
</section>
</section>
<section href="ch04.html#id5204914" id="id5204914">
<title>Application Traversal</title>
<example href="ch04.html#id5205237" id="id5205237">
<title>Example 4-1. Application Callback to Make a Pendulum</title>
</example>
</section>
<section href="ch04.html#LE74200-PARENT" id="LE74200-PARENT">
<title>Cull Traversal</title>
<section href="ch04.html#LE81519-PARENT" id="LE81519-PARENT">
<title>Traversal Order</title>
</section>
<section href="ch04.html#id5205579" id="id5205579">
<title>Visibility Culling</title>
<section href="ch04.html#id5205613" id="id5205613">
<title>Hierarchical Bounding Volumes</title>
<figure href="ch04.html#id5205691" id="id5205691">
<title>Figure 4-1. Culling to the Frustum</title>
</figure>
</section>
<section href="ch04.html#id5205733" id="id5205733">
<title>Visibility Testing</title>
</section>
<section href="ch04.html#id5205876" id="id5205876">
<title>Visibility Culling Example</title>
<figure href="ch04.html#id5205894" id="id5205894">
<title>Figure 4-2. Sample Database Objects and Bounding Volumes</title>
</figure>
</section>
</section>
<section href="ch04.html#LE98496-PARENT" id="LE98496-PARENT">
<title>Organizing a Database for Efficient Culling</title>
<figure href="ch04.html#id5206080" id="id5206080">
<title>Figure 4-3. How to Partition a Database for Maximum Efficiency</title>
</figure>
<section href="ch04.html#id5206122" id="id5206122">
<title>Custom Visibility Culling</title>
</section>
</section>
<section href="ch04.html#LE60920-PARENT" id="LE60920-PARENT">
<title>Sorting the Scene</title>
</section>
<section href="ch04.html#LE83289-PARENT" id="LE83289-PARENT">
<title>Paths through the Scene Graph</title>
</section>
</section>
<section href="ch04.html#id5207018" id="id5207018">
<title>Draw Traversal</title>
<section href="ch04.html#id5207060" id="id5207060">
<title>Optimizing the Drawing of Sub-bins</title>
</section>
<section href="ch04.html#id5207126" id="id5207126">
<title>Bin Draw Callbacks</title>
</section>
</section>
<section href="ch04.html#LE32831-PARENT" id="LE32831-PARENT">
<title>Controlling and Customizing Traversals</title>
<section href="ch04.html#LE89596-PARENT" id="LE89596-PARENT">
<title>pfChannel Traversal Modes</title>
</section>
<section href="ch04.html#LE18817-PARENT" id="LE18817-PARENT">
<title>Cull Programs</title>
<section href="ch04.html#LE37943-PARENT" id="LE37943-PARENT">
<title>The pfCullProgram Class</title>
</section>
<section href="ch04.html#LE26840-PARENT" id="LE26840-PARENT">
<title>Polytopes</title>
</section>
<section href="ch04.html#LE23218-PARENT" id="LE23218-PARENT">
<title> Predefined Cull Program Instructions</title>
<table href="ch04.html#id5208205" id="id5208205">
<title>Table 4-2. Test Instructions </title>
</table>
<table href="ch04.html#id5208393" id="id5208393">
<title>Table 4-3. Assign Instructions</title>
</table>
<table href="ch04.html#id5208685" id="id5208685">
<title>Table 4-4. Jump Instructions</title>
</table>
</section>
<section href="ch04.html#LE40848-PARENT" id="LE40848-PARENT">
<title>User-Defined Cull Program Instructions</title>
<table href="ch04.html#id5209105" id="id5209105">
<title>Table 4-5. Functions Available for User-Defined Cull Program Instructions</title>
</table>
</section>
<section href="ch04.html#LE10636-PARENT" id="LE10636-PARENT">
<title>Cull Traversal</title>
</section>
<section href="ch04.html#LE42762-PARENT" id="LE42762-PARENT">
<title>Occlusion Culling Using Cull Programs</title>
</section>
<section href="ch04.html#LE25148-PARENT" id="LE25148-PARENT">
<title>Small-Feature Culling Using Cull Programs</title>
</section>
</section>
<section href="ch04.html#id5209802" id="id5209802">
<title>pfNode Draw Mask</title>
</section>
<section href="ch04.html#LE91188-PARENT" id="LE91188-PARENT">
<title>pfNode Cull and Draw Callbacks</title>
<table href="ch04.html#id5210094" id="id5210094">
<title>Table 4-6. Cull Callback Return Values</title>
</table>
<example href="ch04.html#LE76379-PARENT" id="LE76379-PARENT">
<title>Example 4-2. pfNode Draw Callbacks</title>
</example>
</section>
</section>
<section href="ch04.html#LE90303-PARENT" id="LE90303-PARENT">
<title>Process Callbacks</title>
<example href="ch04.html#LE66523-PARENT" id="LE66523-PARENT">
<title>Example 4-3. Cull-Process Callbacks</title>
</example>
<section href="ch04.html#LE82734-PARENT" id="LE82734-PARENT">
<title>Process Callbacks and Passthrough Data</title>
<example href="ch04.html#LE35697-PARENT" id="LE35697-PARENT">
<title>Example 4-4. Using Passthrough Data to Communicate with Callback Routines</title>
</example>
</section>
</section>
<section href="ch04.html#LE90544-PARENT" id="LE90544-PARENT">
<title>Intersection Traversal</title>
<section href="ch04.html#id5211633" id="id5211633">
<title>Testing Line Segment Intersections</title>
</section>
<section href="ch04.html#LE30223-PARENT" id="LE30223-PARENT">
<title>Intersection Requests: pfSegSets</title>
</section>
<section href="ch04.html#LE79108-PARENT" id="LE79108-PARENT">
<title>Intersection Return Data: pfHit Objects</title>
<table href="ch04.html#id5211867" id="id5211867">
<title>Table 4-7.  Intersection-Query Token Names</title>
</table>
</section>
<section href="ch04.html#id5212430" id="id5212430">
<title>Intersection Masks</title>
<section href="ch04.html#id5212509" id="id5212509">
<title>Setting the Intersection Mask</title>
</section>
<section href="ch04.html#id5212576" id="id5212576">
<title>Specifying Different Classes of Geometry</title>
<table href="ch04.html#id5212626" id="id5212626">
<title>Table 4-8. Database Classes and Corresponding Node Masks</title>
</table>
<table href="ch04.html#id5212764" id="id5212764">
<title>Table 4-9. Representing Traversal Mask Values</title>
</table>
</section>
</section>
<section href="ch04.html#id5212930" id="id5212930">
<title>Discriminator Callbacks</title>
<table href="ch04.html#id5213054" id="id5213054">
<title>Table 4-10. Possible Traversal Results</title>
</table>
</section>
<section href="ch04.html#id5213198" id="id5213198">
<title>Line Segment Clipping</title>
</section>
<section href="ch04.html#id5213283" id="id5213283">
<title>Traversing Special Nodes</title>
</section>
<section href="ch04.html#id5213306" id="id5213306">
<title>
Picking</title>
</section>
<section href="ch04.html#LE13946-PARENT" id="LE13946-PARENT">
<title>Performance</title>
<section href="ch04.html#id5213470" id="id5213470">
<title>Performance Trade-offs</title>
</section>
<section href="ch04.html#id5213488" id="id5213488">
<title>Front Face/Back Face</title>
</section>
<section href="ch04.html#id5213514" id="id5213514">
<title>Enabling Caching</title>
</section>
</section>
<section href="ch04.html#id5213628" id="id5213628">
<title>Intersection Methods for Segments</title>
<figure href="ch04.html#id5213729" id="id5213729">
<title>Figure 4-4. Intersection Methods</title>
</figure>
</section>
</section>
</chapter>
<chapter href="ch05.html" id="LE33349-PARENT">
<title>Chapter 5. Frame and Load Control</title>
<section href="ch05.html#id5213795" id="id5213795">
<title>Frame Rate Management</title>
<section href="ch05.html#id5213943" id="id5213943">
<title>Selecting the Frame Rate</title>
</section>
<section href="ch05.html#LE26695-PARENT" id="LE26695-PARENT">
<title>Achieving the Frame Rate</title>
</section>
<section href="ch05.html#id5214108" id="id5214108">
<title>Fixing the Frame Rate</title>
<table href="ch05.html#id5214158" id="id5214158">
<title>Table 5-1. Frame Control Functions</title>
</table>
<figure href="ch05.html#id5214502" id="id5214502">
<title>Figure 5-1. Frame Rate and Phase Control</title>
</figure>
<section href="ch05.html#id5214632" id="id5214632">
<title>Frame Synchronization</title>
</section>
<section href="ch05.html#LE75264-PARENT" id="LE75264-PARENT">
<title>Free-Running Frame-Rate Control</title>
</section>
<section href="ch05.html#id5214934" id="id5214934">
<title>Fixed Frame-Rate Control </title>
</section>
<section href="ch05.html#id5215037" id="id5215037">
<title>Frame Skipping</title>
</section>
<section href="ch05.html#id5215127" id="id5215127">
<title>Sample Code</title>
<example href="ch05.html#LE64233-PARENT" id="LE64233-PARENT">
<title>Example 5-1. Frame Control Excerpt</title>
</example>
</section>
</section>
</section>
<section href="ch05.html#LE83221-PARENT" id="LE83221-PARENT">
<title>Level-of-Detail Management</title>
<section href="ch05.html#id5215285" id="id5215285">
<title>Level-of-Detail Models</title>
<figure href="ch05.html#id5215395" id="id5215395">
<title>Figure 5-2. Level-of-Detail Node Structure</title>
</figure>
<figure href="ch05.html#id5215459" id="id5215459">
<title>Figure 5-3. Level-of-Detail Processing</title>
</figure>
</section>
<section href="ch05.html#LE64021-PARENT" id="LE64021-PARENT">
<title>Level-of-Detail States</title>
</section>
<section href="ch05.html#LE81400-PARENT" id="LE81400-PARENT">
<title>Level-of-Detail Range Processing</title>
<example href="ch05.html#LE44427-PARENT" id="LE44427-PARENT">
<title>Example 5-2. Setting LOD Ranges</title>
</example>
</section>
<section href="ch05.html#LE72316-PARENT" id="LE72316-PARENT">
<title>Level-of-Detail Transition Blending</title>
<table href="ch05.html#id5216168" id="id5216168">
<title>Table 5-2. LOD Transition Zones</title>
</table>
</section>
<section href="ch05.html#id5216390" id="id5216390">
<title>Run-Time User Control Over LOD Evaluation</title>
</section>
<section href="ch05.html#LE70473-PARENT" id="LE70473-PARENT">
<title>Terrain Level-of-Detail</title>
<section href="ch05.html#id5216538" id="id5216538">
<title>Active Surface Definiton (ASD)</title>
</section>
<section href="ch05.html#id5216608" id="id5216608">
<title>Arbitrary Morphing</title>
</section>
</section>
</section>
<section href="ch05.html#id5216694" id="id5216694">
<title>Maintaining Frame Rate Using D
ynamic Vid
eo Res
olution</title>
<figure href="ch05.html#id5216864" id="id5216864">
<title>Figure 5-4. Real Size of Viewport Rendered Under Increasing Stress</title>
</figure>
<section href="ch05.html#id5216893" id="id5216893">
<title>The Channel in DVR</title>
</section>
<section href="ch05.html#id5217066" id="id5217066">
<title>DVR Scaling</title>
</section>
<section href="ch05.html#id5217164" id="id5217164">
<title>Customizing DVR </title>
</section>
<section href="ch05.html#id5217526" id="id5217526">
<title>Understanding the Stre
ss Filter</title>
</section>
</section>
<section href="ch05.html#LE58733-PARENT" id="LE58733-PARENT">
<title>Dynamic Load Management</title>
<figure href="ch05.html#id5217832" id="id5217832">
<title>Figure 5-5. Stress Processing</title>
</figure>
<example href="ch05.html#LE59783-PARENT" id="LE59783-PARENT">
<title>Example 5-3. Default Stress Function</title>
</example>
</section>
<section href="ch05.html#LE42517-PARENT" id="LE42517-PARENT">
<title>Successful Multiprocessing with OpenGL Performer</title>
<section href="ch05.html#id5218085" id="id5218085">
<title>Review of Rendering Stages</title>
</section>
<section href="ch05.html#id5218261" id="id5218261">
<title>Choosing a Multiprocessing Model</title>
<table href="ch05.html#id5218327" id="id5218327">
<title>Table 5-3. Multiprocessing Models</title>
</table>
<section href="ch05.html#LE18382-PARENT" id="LE18382-PARENT">
<title>Cull-Overlap-Draw Mode</title>
</section>
<section href="ch05.html#id5218800" id="id5218800">
<title>Forcing Display List Generation</title>
</section>
<section href="ch05.html#id5218979" id="id5218979">
<title>Intersection Pipeline</title>
</section>
<section href="ch05.html#id5219111" id="id5219111">
<title>Compute Process</title>
</section>
<section href="ch05.html#id5219229" id="id5219229">
<title>Multiple Rendering Pipelines</title>
</section>
<section href="ch05.html#id5219439" id="id5219439">
<title>Multithreading</title>
</section>
<section href="ch05.html#id5219513" id="id5219513">
<title>CULL Sidekick Processes</title>
</section>
<section href="ch05.html#id5219670" id="id5219670">
<title>Order of Calls</title>
</section>
<section href="ch05.html#id5219900" id="id5219900">
<title>Comparative Structure of Models</title>
<figure href="ch05.html#id5220106" id="id5220106">
<title>Figure 5-6. Multiprocessing Models</title>
</figure>
</section>
</section>
<section href="ch05.html#id5220141" id="id5220141">
<title>Asynchronous Database Processing</title>
<section href="ch05.html#id5220225" id="id5220225">
<title>DBASE Process</title>
</section>
<section href="ch05.html#id5220387" id="id5220387">
<title>pfBuffer</title>
</section>
<section href="ch05.html#id5220798" id="id5220798">
<title>pfAsyncDelete</title>
</section>
</section>
<section href="ch05.html#id5220951" id="id5220951">
<title>Placing Multiple OpenGL Performer Processes on a Single CPU</title>
</section>
<section href="ch05.html#id5221057" id="id5221057">
<title>Rules for Invoking Functions While Multiprocessing</title>
<table href="ch05.html#id5221816" id="id5221816">
<title>Table 5-4. Trigger Routines and Associated Processes</title>
</table>
</section>
<section href="ch05.html#LE10268-PARENT" id="LE10268-PARENT">
<title>Multiprocessing and Memory</title>
</section>
<section href="ch05.html#id5222338" id="id5222338">
<title>Shared Memory and pfInit()</title>
</section>
<section href="ch05.html#LE38950-PARENT" id="LE38950-PARENT">
<title>pfDataPools</title>
</section>
<section href="ch05.html#id5222658" id="id5222658">
<title>Passthrough Data</title>
</section>
</section>
<section href="ch05.html#id5222984" id="id5222984">
<title>CULL Process Optimizations</title>
<figure href="ch05.html#id5223008" id="id5223008">
<title>Figure 5-7. Loose Culling of pfGeosets</title>
</figure>
<section href="ch05.html#LE41084-PARENT" id="LE41084-PARENT">
<title>Cull Sidekick Processes</title>
<figure href="ch05.html#LE18259-PARENT" id="LE18259-PARENT">
<title>Figure 5-8. CULL_SIDEKICK Processing</title>
</figure>
</section>
<section href="ch05.html#id5223278" id="id5223278">
<title>Configuring CULL_SIDEKICK Processes</title>
</section>
<section href="ch05.html#id5223320" id="id5223320">
<title>CULL Sidekick Optimization Mask</title>
</section>
<section href="ch05.html#id5223396" id="id5223396">
<title>CULL Sidekick Synchronization Policy</title>
</section>
<section href="ch05.html#id5223552" id="id5223552">
<title>CULL Sidekick User Functions</title>
</section>
<section href="ch05.html#id5223739" id="id5223739">
<title>Modifying Attributes of Cloned pfGeoSets</title>
</section>
<section href="ch05.html#id5224039" id="id5224039">
<title>Marking pfGeoSets for Optimization</title>
</section>
</section>
</chapter>
<chapter href="ch06.html" id="LE80782-PARENT">
<title>Chapter 6. Creating Visual Effects</title>
<section href="ch06.html#LE15637-PARENT" id="LE15637-PARENT">
<title>Using pfEarthSky</title>
<example href="ch06.html#LE66443-PARENT" id="LE66443-PARENT">
<title>Example 6-1. How to Configure a pfEarthSky</title>
</example>
</section>
<section href="ch06.html#LE80433-PARENT" id="LE80433-PARENT">
<title>Atmospheric Effects</title>
<figure href="ch06.html#id5224457" id="id5224457">
<title>Figure 6-1. Layered Atmosphere Model</title>
</figure>
<table href="ch06.html#id5224517" id="id5224517">
<title>Table 6-1. pfEarthSky Functions</title>
</table>
<table href="ch06.html#id5224806" id="id5224806">
<title>Table 6-2. pfEarthSky Attributes </title>
</table>
</section>
<section href="ch06.html#LE40403-PARENT" id="LE40403-PARENT">
<title>Patchy Fog and Layered Fog</title>
<figure href="ch06.html#id5225490" id="id5225490">
<title>Figure 6-2. Patchy Fog Versus Layered Fog</title>
</figure>
<section href="ch06.html#LE34321-PARENT" id="LE34321-PARENT">
<title>Creating Layered Fog</title>
<example href="ch06.html#id5225661" id="id5225661">
<title>Example 6-2. Fog initialization Using pfVolFogAddPoint()</title>
</example>
</section>
<section href="ch06.html#id5225678" id="id5225678">
<title>Creating Patchy Fog</title>
<example href="ch06.html#id5225724" id="id5225724">
<title>Example 6-3. Specifying Patchy Fog Boundaries Using pfVolFogAddNode()</title>
</example>
</section>
<section href="ch06.html#id5225752" id="id5225752">
<title>Initializing a pfVolFog</title>
<table href="ch06.html#id5225792" id="id5225792">
<title>Table 6-3. pfVolFog Functions</title>
</table>
<table href="ch06.html#id5226387" id="id5226387">
<title>Table 6-4.              pfVolFog Attributes</title>
</table>
<table href="ch06.html#id5227101" id="id5227101">
<title>Table 6-5. pfVolFog Flags</title>
</table>
</section>
<section href="ch06.html#id5227750" id="id5227750">
<title>Updating the View</title>
</section>
<section href="ch06.html#id5227917" id="id5227917">
<title>Drawing a Scene with Fog</title>
</section>
<section href="ch06.html#id5227983" id="id5227983">
<title>Deleting a pfVolFog</title>
</section>
<section href="ch06.html#id5228011" id="id5228011">
<title>Specifying Fog Parameters</title>
<section href="ch06.html#id5228022" id="id5228022">
<title>Layered Fog</title>
</section>
<section href="ch06.html#id5228248" id="id5228248">
<title>Patchy Fog</title>
</section>
</section>
<section href="ch06.html#id5228436" id="id5228436">
<title>Advanced Features of Layered Fog and Patchy Fog</title>
<section href="ch06.html#LE25944-PARENT" id="LE25944-PARENT">
<title>Enabling Self-Shadowing of a Layered Fog and Scene Darkening</title>
</section>
<section href="ch06.html#LE28395-PARENT" id="LE28395-PARENT">
<title>Animating Patchy Fog</title>
</section>
<section href="ch06.html#LE41661-PARENT" id="LE41661-PARENT">
<title>Selecting a Different Type of Patchy Fog Algorithm</title>
</section>
<section href="ch06.html#LE23803-PARENT" id="LE23803-PARENT">
<title>Simulating Self-Shadowing in Patchy Fog</title>
</section>
<section href="ch06.html#LE34120-PARENT" id="LE34120-PARENT">
<title>Layered Patchy Fog</title>
</section>
<section href="ch06.html#LE15960-PARENT" id="LE15960-PARENT">
<title>Light Shafts</title>
</section>
</section>
<section href="ch06.html#id5228904" id="id5228904">
<title>Performance Considerations and Limitations</title>
</section>
</section>
<section href="ch06.html#LE24299-PARENT" id="LE24299-PARENT">
<title>Real-Time Shadows</title>
<section href="ch06.html#LE32570-PARENT" id="LE32570-PARENT">
<title>Creating a pfShadow</title>
<table href="ch06.html#id5229502" id="id5229502">
<title>Table 6-6. pfShadow Functions</title>
</table>
<table href="ch06.html#id5229872" id="id5229872">
<title>Table 6-7. pfShadow Attributes</title>
</table>
</section>
<section href="ch06.html#LE11336-PARENT" id="LE11336-PARENT">
<title>Drawing a Scene with Shadows</title>
</section>
<section href="ch06.html#LE15860-PARENT" id="LE15860-PARENT">
<title>Specifying Shadow Parameters</title>
</section>
<section href="ch06.html#LE42043-PARENT" id="LE42043-PARENT">
<title>Assigning Data with Directions</title>
</section>
<section href="ch06.html#LE17261-PARENT" id="LE17261-PARENT">
<title>Limitations of Real-Time Shadows</title>
</section>
</section>
<section href="ch06.html#LE16208-PARENT" id="LE16208-PARENT">
<title>Image-Based Rendering</title>
<section href="ch06.html#LE10498-PARENT" id="LE10498-PARENT">
<title>Creating a pfIBRnode</title>
</section>
<section href="ch06.html#LE24591-PARENT" id="LE24591-PARENT">
<title>Creating a pfIBRnode Using a Proxy</title>
</section>
<section href="ch06.html#LE31053-PARENT" id="LE31053-PARENT">
<title>Creating a pfIBRtexture</title>
</section>
<section href="ch06.html#LE13264-PARENT" id="LE13264-PARENT">
<title>Parameters Controlling Drawing of a pfIBRnode</title>
</section>
<section href="ch06.html#LE33369-PARENT" id="LE33369-PARENT">
<title>The Simplify Application</title>
<section href="ch06.html#id5231775" id="id5231775">
<title>The Simplify Graphical User Interface (GUI)</title>
<figure href="ch06.html#id5231855" id="id5231855">
<title>Figure 6-3. The Default Simplify Pane</title>
</figure>
</section>
<section href="ch06.html#id5231877" id="id5231877">
<title>Making a Proxy of an Object</title>
</section>
<section href="ch06.html#id5232260" id="id5232260">
<title>Simplifying an Object</title>
<figure href="ch06.html#id5232333" id="id5232333">
<title>Figure 6-4. The Simplify Pane for Simplifying an Object</title>
</figure>
</section>
</section>
<section href="ch06.html#LE36227-PARENT" id="LE36227-PARENT">
<title>Creating Images of an Object with makeProxyImages</title>
<section href="ch06.html#id5232603" id="id5232603">
<title>Command-Line Options for makeProxyImages</title>
<table href="ch06.html#id5232650" id="id5232650">
<title>Table 6-8. Key Command-Line Options of makeProxyImages </title>
</table>
</section>
<section href="ch06.html#LE28995-PARENT" id="LE28995-PARENT">
<title>Packing Additional Textures Pieces</title>
</section>
<section href="ch06.html#LE18444-PARENT" id="LE18444-PARENT">
<title>Fine Tuning Texture Rendering</title>
</section>
<section href="ch06.html#LE20876-PARENT" id="LE20876-PARENT">
<title>Potential Problems</title>
</section>
</section>
<section href="ch06.html#LE27567-PARENT" id="LE27567-PARENT">
<title>Creating Images of an Object with makeIBRimages</title>
</section>
<section href="ch06.html#LE37332-PARENT" id="LE37332-PARENT">
<title>Limitations</title>
</section>
</section>
</chapter>
<chapter href="ch07.html" id="LE97681-PARENT">
<title>Chapter 7. Importing Databases</title>
<section href="ch07.html#id5233703" id="id5233703">
<title>Overview of OpenGL Performer Database Creation and Conversion</title>
<table href="ch07.html#id5233778" id="id5233778">
<title>Table 7-1. Database-Importer Source Directories</title>
</table>
</section>
<section href="ch07.html#id5233943" id="id5233943">
<title>libpfdu - Utilities for Creating Efficient OpenGL Performer Run-Time Structures</title>
<section href="ch07.html#id5234045" id="id5234045">
<title>pfdLoadFile - Loading Arbitrary Databases into OpenGL Performer</title>
<table href="ch07.html#id5234080" id="id5234080">
<title>Table 7-2. libpfdu Database Converter Functions</title>
</table>
<section href="ch07.html#id5234479" id="id5234479">
<title>Loading Process Internals</title>
</section>
<section href="ch07.html#id5234631" id="id5234631">
<title>Loader Name</title>
<table href="ch07.html#id5234686" id="id5234686">
<title>Table 7-3. Loader Name Composition</title>
</table>
</section>
<section href="ch07.html#id5234830" id="id5234830">
<title>Shell Environment Variables</title>
</section>
</section>
<section href="ch07.html#LE98350-PARENT" id="LE98350-PARENT">
<title>Database Loading Details</title>
<table href="ch07.html#id5235141" id="id5235141">
<title>Table 7-4. libpfdu Database Converter Management Functions</title>
</table>
<section href="ch07.html#id5235613" id="id5235613">
<title>Finding and initializing a Converter</title>
</section>
</section>
</section>
<section href="ch07.html#LE58045-PARENT" id="LE58045-PARENT">
<title>Developing Custom Importers</title>
<section href="ch07.html#id5235990" id="id5235990">
<title>Structure and Interpretation of the Database File Format</title>
</section>
<section href="ch07.html#id5236074" id="id5236074">
<title>Scene Graph Creation Using Nodes as Defined in libpf</title>
</section>
<section href="ch07.html#id5236112" id="id5236112">
<title>Defining Geometry and Graphics State for libpr</title>
</section>
<section href="ch07.html#id5236202" id="id5236202">
<title>Creating an OpenGL Performer Database Converter using libpfdu</title>
<table href="ch07.html#id5237070" id="id5237070">
<title>Table 7-5. pfdBuilder Modes and Attributes </title>
</table>
</section>
</section>
<section href="ch07.html#id5237573" id="id5237573">
<title>Maximizing Database Loading and Paging Performance with PFB and PFI Formats</title>
<section href="ch07.html#id5237671" id="id5237671">
<title>
pfconv</title>
<section href="ch07.html#id5237755" id="id5237755">
<title>Example Conversion</title>
</section>
</section>
<section href="ch07.html#id5237807" id="id5237807">
<title>
pficonv</title>
</section>
</section>
<section href="ch07.html#id5237852" id="id5237852">
<title>Supported Database Formats</title>
<table href="ch07.html#id5237993" id="id5237993">
<title>Table 7-6. Supported Database Formats </title>
</table>
</section>
<section href="ch07.html#LE21144-PARENT" id="LE21144-PARENT">
<title>Description of Supported Formats</title>
<section href="ch07.html#id5238669" id="id5238669">
<title>AutoDesk 3DS Format</title>
</section>
<section href="ch07.html#id5238752" id="id5238752">
<title>SGI BIN Format</title>
<figure href="ch07.html#id5238805" id="id5238805">
<title>Figure 7-1. BIN-Format Data Objects</title>
</figure>
</section>
<section href="ch07.html#id5238941" id="id5238941">
<title>Side Effects POLY Format</title>
</section>
<section href="ch07.html#id5239110" id="id5239110">
<title>Brigham Young University BYU Format</title>
</section>
<section href="ch07.html#id5239296" id="id5239296">
<title>Optimizer CSB Format</title>
</section>
<section href="ch07.html#id5239312" id="id5239312">
<title>Virtual Cliptexture CT Loader </title>
</section>
<section href="ch07.html#id5239326" id="id5239326">
<title>Designer's Workbench DWB Format</title>
<figure href="ch07.html#id5239493" id="id5239493">
<title>Figure 7-2. Soma Cube Puzzle in DWB Form</title>
</figure>
</section>
<section href="ch07.html#id5239526" id="id5239526">
<title>AutoCAD DXF Format</title>
<figure href="ch07.html#id5239626" id="id5239626">
<title>Figure 7-3. The Famous Teapot in DXF Form</title>
</figure>
</section>
<section href="ch07.html#id5239819" id="id5239819">
<title>MultiGen OpenFlight Format</title>
<figure href="ch07.html#id5240000" id="id5240000">
<title>Figure 7-4. Spacecraft Model in OpenFlight Format</title>
</figure>
</section>
<section href="ch07.html#id5240072" id="id5240072">
<title>McDonnell-Douglas GDS Format</title>
</section>
<section href="ch07.html#id5240249" id="id5240249">
<title>SGI GFO Format</title>
<figure href="ch07.html#id5240298" id="id5240298">
<title>Figure 7-5. GFO Database of Mies van der Rohe's German Pavilion</title>
</figure>
</section>
<section href="ch07.html#id5240444" id="id5240444">
<title>SGI IM Format</title>
</section>
<section href="ch07.html#id5240550" id="id5240550">
<title>AAI/Graphicon IRTP Format</title>
</section>
<section href="ch07.html#LE29600-PARENT" id="LE29600-PARENT">
<title>SGI Open Inventor Format</title>
<figure href="ch07.html#id5240796" id="id5240796">
<title>Figure 7-6. Aircar Database in IRIS Inventor Format</title>
</figure>
</section>
<section href="ch07.html#LE87317-PARENT" id="LE87317-PARENT">
<title>Lightscape Technologies LSA and LSB Formats</title>
<table href="ch07.html#id5241085" id="id5241085">
<title>Table 7-7. Geometric Definitions in LSA Files</title>
</table>
<figure href="ch07.html#id5241304" id="id5241304">
<title>Figure 7-7. LSA-Format City Hall Database</title>
</figure>
<figure href="ch07.html#id5241451" id="id5241451">
<title>Figure 7-8. LSB-Format Operating Room Database</title>
</figure>
</section>
<section href="ch07.html#id5241493" id="id5241493">
<title>Medit Productions MEDIT Format</title>
</section>
<section href="ch07.html#id5241551" id="id5241551">
<title>NFF Neutral File Format</title>
</section>
<section href="ch07.html#id5241705" id="id5241705">
<title>Wavefront Technology OBJ Format</title>
<figure href="ch07.html#id5241805" id="id5241805">
<title>Figure 7-9. SGI Office Building as OBJ Database</title>
</figure>
</section>
<section href="ch07.html#id5241867" id="id5241867">
<title>SGI PFB Format</title>
<section href="ch07.html#id5241936" id="id5241936">
<title>Converting to the PFB Format</title>
</section>
</section>
<section href="ch07.html#id5241974" id="id5241974">
<title>SGI PFI Format</title>
<section href="ch07.html#id5242001" id="id5242001">
<title>Creating PFI Files</title>
</section>
</section>
<section href="ch07.html#LE21909-PARENT" id="LE21909-PARENT">
<title>SGI PHD Format</title>
<figure href="ch07.html#id5242204" id="id5242204">
<title>Figure 7-10. Plethora of Polyhedra in PHD Format</title>
</figure>
</section>
<section href="ch07.html#id5242375" id="id5242375">
<title>SGI PTU Format</title>
<figure href="ch07.html#id5242498" id="id5242498">
<title>Figure 7-11. Terrain Database Generated by PTU Tools</title>
</figure>
</section>
<section href="ch07.html#id5242691" id="id5242691">
<title>ArchVision RPC Format</title>
<table href="ch07.html#id5243127" id="id5243127">
<title>Table 7-8. RPC Converter Values </title>
</table>
<table href="ch07.html#id5243391" id="id5243391">
<title>Table 7-9. RPC Converter Attributes</title>
</table>
</section>
<section href="ch07.html#id5243595" id="id5243595">
<title>USNA Standard Graphics Format</title>
</section>
<section href="ch07.html#id5243711" id="id5243711">
<title>SGI SGO Format</title>
<figure href="ch07.html#id5243773" id="id5243773">
<title>Figure 7-12. Model in SGO Format</title>
</figure>
<table href="ch07.html#id5243898" id="id5243898">
<title>Table 7-10. Object Tokens in the SGO Format</title>
</table>
<table href="ch07.html#id5244169" id="id5244169">
<title>Table 7-11. Mesh Control Tokens in the SGO Format</title>
</table>
</section>
<section href="ch07.html#id5244408" id="id5244408">
<title>USNA Simple Polygon File Format</title>
</section>
<section href="ch07.html#LE40312-PARENT" id="LE40312-PARENT">
<title>Sierpinski Sponge Loader</title>
</section>
<section href="ch07.html#id5244585" id="id5244585">
<title>Star Chart Format</title>
</section>
<section href="ch07.html#id5244701" id="id5244701">
<title>3D Lithography STL Format</title>
<figure href="ch07.html#id5244756" id="id5244756">
<title>Figure 7-13. Sample STLA Database</title>
</figure>
</section>
<section href="ch07.html#id5244931" id="id5244931">
<title>SuperViewer SV Format</title>
<figure href="ch07.html#id5245018" id="id5245018">
<title>Figure 7-14. Early Automobile in SuperViewer SV Format</title>
</figure>
</section>
<section href="ch07.html#id5245471" id="id5245471">
<title>Geometry Center Triangle Format</title>
</section>
<section href="ch07.html#id5245647" id="id5245647">
<title>UNC Walkthrough Format</title>
</section>
<section href="ch07.html#id5245712" id="id5245712">
<title>WRL Format</title>
</section>
</section>
<section href="ch07.html#id5245759" id="id5245759">
<title>Database Operators with Pseudo Loaders</title>
<table href="ch07.html#id5245903" id="id5245903">
<title>Table 7-12. OpenGL Performer Pseudo Loaders</title>
</table>
</section>
<section href="ch07.html#id5246633" id="id5246633">
<title>The Maya Database Exporter</title>
<section href="ch07.html#LE22492-PARENT" id="LE22492-PARENT">
<title>Installation Requirements</title>
<table href="ch07.html#id5246807" id="id5246807">
<title>Table 7-13. Default Path for the Maya Export Plug-in</title>
</table>
</section>
<section href="ch07.html#LE36817-PARENT" id="LE36817-PARENT">
<title>Exporting a Scene Using the Graphical Interface</title>
<figure href="ch07.html#id5246945" id="id5246945">
<title>Figure 7-15. Maya Export Screen</title>
</figure>
<figure href="ch07.html#id5246996" id="id5246996">
<title>Figure 7-16. Maya Export Options</title>
</figure>
<table href="ch07.html#id5247026" id="id5247026">
<title>Table 7-14. Maya Export Options</title>
</table>
</section>
<section href="ch07.html#LE19215-PARENT" id="LE19215-PARENT">
<title> Exporting a Scene Using the Maya Embedded Language (MEL)</title>
</section>
<section href="ch07.html#LE26054-PARENT" id="LE26054-PARENT">
<title> Translation Details</title>
<section href="ch07.html#LE20915-PARENT" id="LE20915-PARENT">
<title>Supported Maya Features</title>
<table href="ch07.html#id5247546" id="id5247546">
<title>Table 7-15. Maya Features Supported by the Exporter</title>
</table>
</section>
<section href="ch07.html#LE40588-PARENT" id="LE40588-PARENT">
<title>Hierarchy</title>
</section>
<section href="ch07.html#LE15164-PARENT" id="LE15164-PARENT">
<title>Geometry</title>
<table href="ch07.html#id5248334" id="id5248334">
<title>Table 7-16. Maya Exporter Support for UV Mapping Methods</title>
</table>
</section>
<section href="ch07.html#LE23645-PARENT" id="LE23645-PARENT">
<title>Shaders</title>
<table href="ch07.html#id5248585" id="id5248585">
<title>Table 7-17. Maya Exporter Support for Material Properties</title>
</table>
<table href="ch07.html#id5248882" id="id5248882">
<title>Table 7-18. Maya Exporter Support for Texture Properties</title>
</table>
</section>
</section>
</section>
</chapter>
<chapter href="ch08.html" id="LE20309-PARENT">
<title>Chapter 8. Geometry</title>
<section href="ch08.html#LE43186-PARENT" id="LE43186-PARENT">
<title>pfGeoSet (Geometry Set)</title>
<table href="ch08.html#id5249464" id="id5249464">
<title>Table 8-1. pfGeoSet Routines</title>
</table>
<section href="ch08.html#LE51500-PARENT" id="LE51500-PARENT">
<title>Primitive Types</title>
<table href="ch08.html#id5250379" id="id5250379">
<title>Table 8-2. Geometry Primitives</title>
</table>
</section>
<section href="ch08.html#id5251056" id="id5251056">
<title>pfGeoSet Draw Mode</title>
<section href="ch08.html#id5251534" id="id5251534">
<title>Packed Attributes</title>
<table href="ch08.html#id5251624" id="id5251624">
<title>Table 8-3. pfGeoSet PACKED_ATTR Formats</title>
</table>
</section>
</section>
<section href="ch08.html#id5251850" id="id5251850">
<title>Primitive Connectivity</title>
<figure href="ch08.html#id5251943" id="id5251943">
<title>Figure 8-1. Primitives and Connectivity</title>
</figure>
</section>
<section href="ch08.html#LE96781-PARENT" id="LE96781-PARENT">
<title>Attributes</title>
<figure href="ch08.html#id5252236" id="id5252236">
<title>Figure 8-2. pfGeoSet Structure</title>
</figure>
</section>
<section href="ch08.html#id5252322" id="id5252322">
<title>Attribute Bindings</title>
<table href="ch08.html#id5252404" id="id5252404">
<title>Table 8-4. Attribute Bindings</title>
</table>
</section>
<section href="ch08.html#LE25882-PARENT" id="LE25882-PARENT">
<title>Indexed Arrays</title>
<figure href="ch08.html#id5252851" id="id5252851">
<title>Figure 8-3. Indexing Arrays</title>
</figure>
<section href="ch08.html#id5252877" id="id5252877">
<title>When to Index Attributes</title>
<figure href="ch08.html#id5252911" id="id5252911">
<title>Figure 8-4. Deciding Whether to Index Attributes</title>
</figure>
</section>
</section>
<section href="ch08.html#LE73325-PARENT" id="LE73325-PARENT">
<title>pfGeoSet Operations</title>
</section>
</section>
<section href="ch08.html#LE21841-PARENT" id="LE21841-PARENT">
<title>pfGeoArray (Geometry Array)</title>
<section href="ch08.html#id5253440" id="id5253440">
<title>pfGeoArray Attributes</title>
</section>
<section href="ch08.html#LE21992-PARENT" id="LE21992-PARENT">
<title>pfGeoArray Attribute Types</title>
</section>
<section href="ch08.html#id5254721" id="id5254721">
<title>pfGeoSet Primitive Types</title>
<section href="ch08.html#id5254734" id="id5254734">
<title>Specifying Primitive Types</title>
</section>
<section href="ch08.html#id5254863" id="id5254863">
<title>Primitive Type Descriptions</title>
</section>
</section>
<section href="ch08.html#id5256044" id="id5256044">
<title>pfGeoArray Special Rendering Characteristics</title>
</section>
<section href="ch08.html#LE19688-PARENT" id="LE19688-PARENT">
<title>pfGeoArrays (Geometry) and pfGeoStates (Appearance)</title>
</section>
<section href="ch08.html#id5256647" id="id5256647">
<title>Drawing pfGeoArrays</title>
</section>
<section href="ch08.html#id5256891" id="id5256891">
<title>Intersecting with pfGeoArrays</title>
<table href="ch08.html#id5257819" id="id5257819">
<title>Table 8-5. Information Obtained from a pfHit</title>
</table>
</section>
<section href="ch08.html#id5258430" id="id5258430">
<title>Clip Texture Emulation Support</title>
</section>
<section href="ch08.html#id5258745" id="id5258745">
<title>Quick Manipulation of Temporary pfGeoArrays</title>
</section>
<section href="ch08.html#id5258941" id="id5258941">
<title> Converting pfGeoSets to pfGeoArrays</title>
</section>
</section>
<section href="ch08.html#LE17931-PARENT" id="LE17931-PARENT">
<title>3D Text</title>
<section href="ch08.html#id5259078" id="id5259078">
<title>pfFont</title>
<table href="ch08.html#id5259176" id="id5259176">
<title>Table 8-6. pfFont Routines</title>
</table>
<example href="ch08.html#id5259650" id="id5259650">
<title>Example 8-1. Loading Characters into a pfFont</title>
</example>
</section>
<section href="ch08.html#LE94240-PARENT" id="LE94240-PARENT">
<title>pfString</title>
<example href="ch08.html#LE22036-PARENT" id="LE22036-PARENT">
<title>Example 8-2. Setting Up and Drawing a pfString</title>
</example>
<table href="ch08.html#id5259901" id="id5259901">
<title>Table 8-7. pfString Routines</title>
</table>
</section>
</section>
</chapter>
<chapter href="ch09.html" id="LE24570-PARENT">
<title>Chapter 9. Higher-Order Geometric Primitives</title>
<section href="ch09.html#LE97325-PARENT" id="LE97325-PARENT">
<title>Features and Uses of Higher-Order Geometric Primitives</title>
<section href="ch09.html#id5260750" id="id5260750">
<title>Reps and the Rendering Process</title>
</section>
<section href="ch09.html#id5260775" id="id5260775">
<title>Trimmed NURBS</title>
</section>
</section>
<section href="ch09.html#LE17995-PARENT" id="LE17995-PARENT">
<title>Objects Required by Reps</title>
<section href="ch09.html#id5260918" id="id5260918">
<title>New Types Required for Reps</title>
</section>
<section href="ch09.html#id5261130" id="id5261130">
<title>Classes for Scalar Functions</title>
<section href="ch09.html#id5261200" id="id5261200">
<title>Class Declaration for pfScalar</title>
</section>
<section href="ch09.html#id5261231" id="id5261231">
<title>Class Declaration for pfCompositeScalar</title>
</section>
<section href="ch09.html#id5261252" id="id5261252">
<title>Main Features of the Methods in pfCompositeScalar</title>
</section>
<section href="ch09.html#id5261304" id="id5261304">
<title>Trigonometric Functions</title>
</section>
<section href="ch09.html#id5261389" id="id5261389">
<title>Polynomials</title>
</section>
<section href="ch09.html#id5261431" id="id5261431">
<title>Class Declaration for pfPolyScalar</title>
</section>
</section>
<section href="ch09.html#LE85913-PARENT" id="LE85913-PARENT">
<title>Matrix Class: pfRMatrix</title>
</section>
</section>
<section href="ch09.html#LE41769-PARENT" id="LE41769-PARENT">
<title>Geometric Primitives: The Base Class pfRep and the Application repTest</title>
<figure href="ch09.html#id5261787" id="id5261787">
<title>Figure 9-1. Class Hierarchy for 
Higher-Order Primitives</title>
</figure>
<section href="ch09.html#id5261822" id="id5261822">
<title>Class Declaration for pfRep</title>
</section>
<section href="ch09.html#id5261853" id="id5261853">
<title>Main Features of the Methods in pfRep</title>
</section>
</section>
<section href="ch09.html#LE87966-PARENT" id="LE87966-PARENT">
<title>Planar Curves</title>
<section href="ch09.html#LE39609-PARENT" id="LE39609-PARENT">
<title>Mathematical Description of a Planar Curve</title>
<figure href="ch09.html#id5262344" id="id5262344">
<title>Figure 9-2. Parametric Curve: Parameter Interval (0,1).</title>
</figure>
<section href="ch09.html#id5262521" id="id5262521">
<title>Class Declaration for  pfCurve2d</title>
</section>
<section href="ch09.html#id5262587" id="id5262587">
<title>Main Features of the Methods in pfCurve2d</title>
</section>
</section>
<section href="ch09.html#LE59834-PARENT" id="LE59834-PARENT">
<title>Lines in the Plane</title>
<figure href="ch09.html#id5262930" id="id5262930">
<title>Figure 9-3. Line in the Plane Parameterization</title>
</figure>
<section href="ch09.html#id5262967" id="id5262967">
<title>Class Declaration for pfLine2d</title>
</section>
<section href="ch09.html#id5262993" id="id5262993">
<title>Main Features of Methods in pfLine2d</title>
</section>
</section>
<section href="ch09.html#LE39403-PARENT" id="LE39403-PARENT">
<title>Circles in the Plane</title>
<figure href="ch09.html#id5263240" id="id5263240">
<title>Figure 9-4. Circle in the Plane Parameterization</title>
</figure>
<section href="ch09.html#id5263261" id="id5263261">
<title>Class Declaration for pfCircle2d</title>
</section>
<section href="ch09.html#id5263287" id="id5263287">
<title>Main Features of the Methods in pfCircle2d</title>
</section>
</section>
<section href="ch09.html#LE82762-PARENT" id="LE82762-PARENT">
<title>Superquadric Curves: pfSuperQuadCurve2d</title>
<figure href="ch09.html#id5263631" id="id5263631">
<title>Figure 9-5. Superquadric Curve's Dependence on the Parameter &#945;.</title>
</figure>
<section href="ch09.html#id5263654" id="id5263654">
<title>Class Declaration for pfSuperQuadCurve2d</title>
</section>
<section href="ch09.html#id5263744" id="id5263744">
<title>Main Features of the Methods in pfSuperQuadCurve2d</title>
</section>
</section>
<section href="ch09.html#LE31846-PARENT" id="LE31846-PARENT">
<title>Hermite-Spline Curves in the Plane</title>
<figure href="ch09.html#id5263923" id="id5263923">
<title>Figure 9-6. Hermite Spline Curve Parameterization</title>
</figure>
<section href="ch09.html#id5263940" id="id5263940">
<title>Class Declaration for pfHsplineCurve2d</title>
</section>
</section>
<section href="ch09.html#LE57951-PARENT" id="LE57951-PARENT">
<title>NURBS Overview</title>
<section href="ch09.html#LE22282-PARENT" id="LE22282-PARENT">
<title>OpenGL Performer NURBS Classes</title>
</section>
<section href="ch09.html#LE26959-PARENT" id="LE26959-PARENT">
<title>NURBS Elements That Determine the Control Parameters</title>
</section>
<section href="ch09.html#LE50886-PARENT" id="LE50886-PARENT">
<title>Knot Points</title>
</section>
<section href="ch09.html#LE37107-PARENT" id="LE37107-PARENT">
<title>Control Hull</title>
</section>
<section href="ch09.html#LE86663-PARENT" id="LE86663-PARENT">
<title>Weights for Control Points</title>
</section>
<section href="ch09.html#LE12373-PARENT" id="LE12373-PARENT">
<title>Features of NURBS and Bezier Curves</title>
</section>
<section href="ch09.html#id5264759" id="id5264759">
<title>Equation Used to Calculate a NURBS Curve</title>
</section>
<section href="ch09.html#id5264809" id="id5264809">
<title>Alternative Equation for a NURBS Curve</title>
</section>
</section>
<section href="ch09.html#LE25301-PARENT" id="LE25301-PARENT">
<title>NURBS Curves in the Plane</title>
<section href="ch09.html#LE60324-PARENT" id="LE60324-PARENT">
<title>Class Declaration for pfNurbCurve2d</title>
</section>
<section href="ch09.html#LE48717-PARENT" id="LE48717-PARENT">
<title>Main Features of the Methods in pfNurbCurve2d</title>
</section>
</section>
<section href="ch09.html#LE31873-PARENT" id="LE31873-PARENT">
<title>Piecewise Polynomial Curves: pfPieceWisePolyCurve2d</title>
<section href="ch09.html#id5265352" id="id5265352">
<title>Class Declaration for pfPieceWisePolyCurve</title>
</section>
</section>
<section href="ch09.html#LE98125-PARENT" id="LE98125-PARENT">
<title>Discrete Curves in the Plane</title>
<figure href="ch09.html#id5265529" id="id5265529">
<title>Figure 9-7. Discrete Curve Definition</title>
</figure>
<section href="ch09.html#id5265550" id="id5265550">
<title>Class Declaration for pfDisCurve2d</title>
</section>
<section href="ch09.html#id5265645" id="id5265645">
<title>Main Features of the Methods in pfDisCurve2d</title>
</section>
</section>
</section>
<section href="ch09.html#LE23187-PARENT" id="LE23187-PARENT">
<title>Spatial Curves</title>
<section href="ch09.html#LE11035-PARENT" id="LE11035-PARENT">
<title>Lines in Space</title>
<section href="ch09.html#id5266337" id="id5266337">
<title>pfOrientedLine3d</title>
</section>
</section>
<section href="ch09.html#LE21268-PARENT" id="LE21268-PARENT">
<title>Circles in Space</title>
</section>
<section href="ch09.html#LE11670-PARENT" id="LE11670-PARENT">
<title>Superquadrics in Space</title>
</section>
<section href="ch09.html#LE20248-PARENT" id="LE20248-PARENT">
<title>Hermite Spline Curves in Space</title>
</section>
<section href="ch09.html#LE51289-PARENT" id="LE51289-PARENT">
<title>NURBS Curves in Space</title>
</section>
<section href="ch09.html#LE27023-PARENT" id="LE27023-PARENT">
<title>Curves on Surfaces: pfCompositeCurve3d</title>
<section href="ch09.html#id5266814" id="id5266814">
<title>Class Declaration for pfCompositeCurve3d</title>
</section>
<section href="ch09.html#id5266849" id="id5266849">
<title>Main Features of the Methods in pfCompositeCurve3d</title>
</section>
</section>
<section href="ch09.html#LE55745-PARENT" id="LE55745-PARENT">
<title>Discrete Curves in Space</title>
</section>
<section href="ch09.html#id5266986" id="id5266986">
<title>Example of Using pfDisCurve3d and pfHsplineCurve3d</title>
</section>
</section>
<section href="ch09.html#LE25486-PARENT" id="LE25486-PARENT">
<title>Parametric Surfaces</title>
<section href="ch09.html#LE32595-PARENT" id="LE32595-PARENT">
<title>Mathematical Description of a Parametric Surface</title>
<figure href="ch09.html#id5267509" id="id5267509">
<title>Figure 9-8. Parametric Surface: Unit-Square Coordinate System</title>
</figure>
</section>
<section href="ch09.html#LE25554-PARENT" id="LE25554-PARENT">
<title>Defining Edges of a Parametric Surface: Trim Loops and Curves</title>
<figure href="ch09.html#id5267791" id="id5267791">
<title>Figure 9-9. Trim Loops and Trimmed Surface: Both Trim Loops Made of Four Trim Curves</title>
</figure>
</section>
<section href="ch09.html#LE12559-PARENT" id="LE12559-PARENT">
<title>Adjacency Information: pfEdge</title>
<section href="ch09.html#id5267994" id="id5267994">
<title>Class Declaration for pfEdge</title>
</section>
</section>
<section href="ch09.html#LE59683-PARENT" id="LE59683-PARENT">
<title>Base Class for Parametric Surfaces: pfParaSurface</title>
<section href="ch09.html#id5268084" id="id5268084">
<title>Class Declaration for pfParaSurface</title>
</section>
<section href="ch09.html#id5268111" id="id5268111">
<title>Main Features of the Methods in pfParaSurface</title>
</section>
</section>
<section href="ch09.html#LE34213-PARENT" id="LE34213-PARENT">
<title>pfPlaneSurface</title>
<figure href="ch09.html#id5268770" id="id5268770">
<title>Figure 9-10. Plane Parameterization</title>
</figure>
<section href="ch09.html#id5268791" id="id5268791">
<title>Class Declaration for pfPlaneSurface</title>
</section>
<section href="ch09.html#id5268861" id="id5268861">
<title>Main Features of the Methods in pfPlaneSurface</title>
</section>
</section>
<section href="ch09.html#LE45761-PARENT" id="LE45761-PARENT">
<title>pfSphereSurface</title>
<figure href="ch09.html#id5269054" id="id5269054">
<title>Figure 9-11. Sphere Parameterization</title>
</figure>
<section href="ch09.html#id5269094" id="id5269094">
<title>Class Declaration for pfSphereSurface</title>
</section>
<section href="ch09.html#id5269128" id="id5269128">
<title>Main Features of the Methods in pfSphereSurface</title>
</section>
<section href="ch09.html#LE29825-PARENT" id="LE29825-PARENT">
<title>pfSphereSurface Example</title>
</section>
</section>
<section href="ch09.html#LE50983-PARENT" id="LE50983-PARENT">
<title>pfCylinderSurface</title>
<figure href="ch09.html#id5269346" id="id5269346">
<title>Figure 9-12. Cylinder Parameterization</title>
</figure>
<section href="ch09.html#id5269363" id="id5269363">
<title>Class Declaration for pfCylinderSurface</title>
</section>
<section href="ch09.html#id5269390" id="id5269390">
<title>Main Features of the Methods in pfCylinderSurface</title>
</section>
</section>
<section href="ch09.html#LE98919-PARENT" id="LE98919-PARENT">
<title>pfTorusSurface</title>
<figure href="ch09.html#id5269554" id="id5269554">
<title>Figure 9-13. Torus Parameterization</title>
</figure>
<section href="ch09.html#id5269575" id="id5269575">
<title>Class Declaration for pfTorusSurface</title>
</section>
<section href="ch09.html#id5269601" id="id5269601">
<title>Main Features of the Methods in pfTorusSurface</title>
</section>
</section>
<section href="ch09.html#LE86934-PARENT" id="LE86934-PARENT">
<title>pfConeSurface</title>
<figure href="ch09.html#id5269779" id="id5269779">
<title>Figure 9-14. Cone Parameterization</title>
</figure>
<section href="ch09.html#id5269816" id="id5269816">
<title>Class Declaration for pfConeSurface</title>
</section>
<section href="ch09.html#id5269852" id="id5269852">
<title>Main Features of the Methods in pfConeSurface</title>
</section>
</section>
<section href="ch09.html#LE68259-PARENT" id="LE68259-PARENT">
<title>Swept Surfaces</title>
<figure href="ch09.html#id5270022" id="id5270022">
<title>Figure 9-15. Swept Surface: Moving Reference Frame and Effect of Profile Function</title>
</figure>
<section href="ch09.html#id5270044" id="id5270044">
<title>Orientation of the Cross Section</title>
</section>
<section href="ch09.html#id5270085" id="id5270085">
<title>Class Declaration for pfSweptSurface </title>
</section>
<section href="ch09.html#id5270125" id="id5270125">
<title>Main Features of the Methods in pfSweptSurface</title>
</section>
</section>
<section href="ch09.html#LE93291-PARENT" id="LE93291-PARENT">
<title>pfFrenetSweptSurface</title>
<section href="ch09.html#LE34011-PARENT" id="LE34011-PARENT">
<title>Class Declaration for pfFrenetSweptSurface</title>
</section>
<section href="ch09.html#id5270457" id="id5270457">
<title>Main Features of the Methods in pfFrenetSweptSurface</title>
</section>
<section href="ch09.html#id5270481" id="id5270481">
<title>Making a Modulated Torus With pfFrenetSweptSurface</title>
</section>
</section>
<section href="ch09.html#LE75316-PARENT" id="LE75316-PARENT">
<title>Ruled Surfaces</title>
<figure href="ch09.html#id5270578" id="id5270578">
<title>Figure 9-16. Ruled Surface Parameterization</title>
</figure>
<section href="ch09.html#id5270631" id="id5270631">
<title>Class Declaration for pfRuledSurface</title>
</section>
</section>
<section href="ch09.html#LE66906-PARENT" id="LE66906-PARENT">
<title>Coons Patches</title>
<figure href="ch09.html#id5270933" id="id5270933">
<title>Figure 9-17. Coons Patch Construction</title>
</figure>
<section href="ch09.html#id5270954" id="id5270954">
<title>Class Declaration for pfCoonsSurface</title>
</section>
</section>
<section href="ch09.html#LE36008-PARENT" id="LE36008-PARENT">
<title>NURBS Surfaces</title>
<section href="ch09.html#id5271230" id="id5271230">
<title>Class Declaration for pfNurbSurface</title>
</section>
<section href="ch09.html#id5271257" id="id5271257">
<title>Main Features of the Methods in pfNurbSurface</title>
</section>
<section href="ch09.html#id5271367" id="id5271367">
<title>Indexing Knot Points and the Control Hull</title>
<figure href="ch09.html#id5271498" id="id5271498">
<title>Figure 9-18. NURBS Surface Control 
Hull Parameterization</title>
</figure>
</section>
<section href="ch09.html#id5271553" id="id5271553">
<title>Equation Used to Calculate a NURBS Surface</title>
</section>
<section href="ch09.html#id5271599" id="id5271599">
<title>Alternative Equation for a NURBS Surface</title>
</section>
<section href="ch09.html#id5271679" id="id5271679">
<title>Sample of a Trimmed pfNurbSurface From repTest</title>
</section>
</section>
<section href="ch09.html#LE70720-PARENT" id="LE70720-PARENT">
<title>Hermite-Spline Surfaces</title>
<figure href="ch09.html#id5271863" id="id5271863">
<title>Figure 9-19. Hermite Spline Surface With Derivatives Specified at Knot Points</title>
</figure>
<section href="ch09.html#id5271918" id="id5271918">
<title>Class Declaration for pfHsplineSurface</title>
</section>
<section href="ch09.html#id5271944" id="id5271944">
<title>Main Features of the Methods in pfHsplineSurface</title>
</section>
</section>
</section>
<section href="ch09.html#LE11353-PARENT" id="LE11353-PARENT">
<title>Meshes</title>
<section href="ch09.html#LE40446-PARENT" id="LE40446-PARENT">
<title>Mesh Faces</title>
</section>
<section href="ch09.html#LE15474-PARENT" id="LE15474-PARENT">
<title>Mesh Vertices</title>
<section href="ch09.html#LE22612-PARENT" id="LE22612-PARENT">
<title>Vertex Coordinates</title>
</section>
<section href="ch09.html#LE37309-PARENT" id="LE37309-PARENT">
<title>Vertex Neighbors</title>
</section>
<section href="ch09.html#LE29851-PARENT" id="LE29851-PARENT">
<title>Binary Flags</title>
</section>
</section>
</section>
<section href="ch09.html#LE28703-PARENT" id="LE28703-PARENT">
<title>Subdivision Surfaces</title>
<section href="ch09.html#LE34053-PARENT" id="LE34053-PARENT">
<title>Creating a Subdivision Surface</title>
</section>
<section href="ch09.html#LE34562-PARENT" id="LE34562-PARENT">
<title>Loop and Catmull-Clark Subdivisions</title>
</section>
<section href="ch09.html#LE41861-PARENT" id="LE41861-PARENT">
<title>Dynamic Modification of Vertices</title>
</section>
<section href="ch09.html#LE29047-PARENT" id="LE29047-PARENT">
<title>The libpfsubdiv Pseudo Loader</title>
</section>
<section href="ch09.html#LE13706-PARENT" id="LE13706-PARENT">
<title>Special Notes</title>
</section>
</section>
</chapter>
<chapter href="ch10.html" id="LE30464-PARENT">
<title>Chapter 10. Creating and Maintaining Surface Topology</title>
<section href="ch10.html#LE72378-PARENT" id="LE72378-PARENT">
<title>Overview of Topology Tasks</title>
</section>
<section href="ch10.html#LE42832-PARENT" id="LE42832-PARENT">
<title>Summary of Scene Graph Topology: pfTopo</title>
<figure href="ch10.html#id5275647" id="id5275647">
<title>Figure 10-1. Topological Relations Maintained by Topology Classes</title>
</figure>
<figure href="ch10.html#id5275667" id="id5275667">
<title>Figure 10-2. Consistently Tessellated Adjacent Surfaces and Related Objects</title>
</figure>
<section href="ch10.html#LE54016-PARENT" id="LE54016-PARENT">
<title>Building Topology: Computing and Using Connectivity Information</title>
<section href="ch10.html#LE61912-PARENT" id="LE61912-PARENT">
<title>Building Topology Incrementally: A Single-Traversal Build</title>
</section>
<section href="ch10.html#LE30577-PARENT" id="LE30577-PARENT">
<title>Building Topology From All Scene Graph Surfaces: A Two-Traversal Build</title>
</section>
<section href="ch10.html#LE97133-PARENT" id="LE97133-PARENT">
<title>Building Topology From a List of Surfaces</title>
</section>
<section href="ch10.html#LE40102-PARENT" id="LE40102-PARENT">
<title>Building Topology &#8220;by Hand&#8221;: Imported Surfaces</title>
</section>
<section href="ch10.html#LE55692-PARENT" id="LE55692-PARENT">
<title>Summary of Topology Building Strategies</title>
<table href="ch10.html#id5276150" id="id5276150">
<title>Table 10-1. Topology Building Methods</title>
</table>
</section>
</section>
<section href="ch10.html#id5276654" id="id5276654">
<title>Reading and Writing Topology Information: Using Pseudo Loaders</title>
<table href="ch10.html#id5276911" id="id5276911">
<title>Table 10-2. Adding Topology and Tessellations to .iv and .csb Files</title>
</table>
<table href="ch10.html#id5277112" id="id5277112">
<title>Table 10-3. Reading and Writing .pfb Files: with and without Tessellations</title>
</table>
</section>
<section href="ch10.html#id5277315" id="id5277315">
<title>Class Declaration for pfTopo</title>
</section>
<section href="ch10.html#id5277368" id="id5277368">
<title>Main Features of the Methods in pfTopo</title>
</section>
</section>
<section href="ch10.html#LE69876-PARENT" id="LE69876-PARENT">
<title>Collecting Connected Surfaces: pfSolid</title>
<section href="ch10.html#id5277773" id="id5277773">
<title>Class Declaration for pfSolid</title>
</section>
<section href="ch10.html#id5277805" id="id5277805">
<title>Main Features of the Methods in pfSolid</title>
</section>
</section>
</chapter>
<chapter href="ch11.html" id="LE71465-PARENT">
<title>Chapter 11. Rendering Higher-Order Primitives: Tessellators</title>
<figure href="ch11.html#id5277994" id="id5277994">
<title>Figure 11-1. Class Hierarchy for Tessellators</title>
</figure>
<section href="ch11.html#LE32187-PARENT" id="LE32187-PARENT">
<title>Features of Tessellators</title>
<section href="ch11.html#id5278050" id="id5278050">
<title>Tessellators for Varying Levels of Detail</title>
<figure href="ch11.html#id5278111" id="id5278111">
<title>Figure 11-2. Tessellations Varying With Changes in Control Parameter</title>
</figure>
<section href="ch11.html#id5278153" id="id5278153">
<title>Details of </title>
</section>
</section>
<section href="ch11.html#id5278225" id="id5278225">
<title>Tessellators Act on a Whole Graph or Single Node</title>
</section>
<section href="ch11.html#id5278246" id="id5278246">
<title>Tessellators and Topology: Managing Cracks</title>
</section>
</section>
<section href="ch11.html#LE29461-PARENT" id="LE29461-PARENT">
<title>Base Class pfTessellateAction</title>
<section href="ch11.html#id5278407" id="id5278407">
<title>Retessellating a Scene Graph</title>
</section>
<section href="ch11.html#id5278513" id="id5278513">
<title>Class Declaration for pfTessellateAction</title>
</section>
<section href="ch11.html#id5278591" id="id5278591">
<title>Main Features of the Methods in pfTessellateAction</title>
</section>
</section>
<section href="ch11.html#LE94465-PARENT" id="LE94465-PARENT">
<title>Tessellating Parametric Surfaces</title>
<section href="ch11.html#LE69511-PARENT" id="LE69511-PARENT">
<title>pfTessParaSurfaceAction</title>
<section href="ch11.html#id5278929" id="id5278929">
<title>Class Declaration for  pfTessParaSurfaceAction</title>
</section>
<section href="ch11.html#id5278988" id="id5278988">
<title>Main Features of the Methods in pfTessParaSurface</title>
</section>
</section>
<section href="ch11.html#id5279230" id="id5279230">
<title>Sample From repTest: Tessellating and Rendering a Sphere</title>
</section>
</section>
</chapter>
<chapter href="ch12.html" id="LE23971-PARENT">
<title>Chapter 12. Graphics State</title>
<section href="ch12.html#id5279812" id="id5279812">
<title>Immediate Mode</title>
<section href="ch12.html#LE89764-PARENT" id="LE89764-PARENT">
<title>Rendering Modes</title>
<table href="ch12.html#id5280451" id="id5280451">
<title>Table 12-1. pfGeoState Mode Tokens</title>
</table>
<section href="ch12.html#id5281384" id="id5281384">
<title>Transparency</title>
<table href="ch12.html#id5281421" id="id5281421">
<title>Table 12-2. pfTransparency Tokens</title>
</table>
</section>
<section href="ch12.html#id5281714" id="id5281714">
<title>Shading Model</title>
</section>
<section href="ch12.html#id5281833" id="id5281833">
<title>Alpha Function</title>
</section>
<section href="ch12.html#id5281949" id="id5281949">
<title>Decals</title>
<example href="ch12.html#LE91886-PARENT" id="LE91886-PARENT">
<title>Example 12-1. Using pfDecal() to a Draw Road with Stripes</title>
</example>
</section>
<section href="ch12.html#id5282428" id="id5282428">
<title>Frontface / Backface</title>
</section>
<section href="ch12.html#id5282607" id="id5282607">
<title>Antialiasing</title>
</section>
</section>
<section href="ch12.html#LE73671-PARENT" id="LE73671-PARENT">
<title>Rendering Values</title>
<table href="ch12.html#id5282762" id="id5282762">
<title>Table 12-3. pfGeoState Value Tokens</title>
</table>
</section>
<section href="ch12.html#id5282887" id="id5282887">
<title>Enable / Disable</title>
<table href="ch12.html#id5282962" id="id5282962">
<title>Table 12-4. Enable and Disable Tokens</title>
</table>
</section>
<section href="ch12.html#LE32960-PARENT" id="LE32960-PARENT">
<title>Rendering Attributes</title>
<table href="ch12.html#id5283517" id="id5283517">
<title>Table 12-5. Rendering Attribute Tokens</title>
</table>
<section href="ch12.html#id5284438" id="id5284438">
<title>Texture</title>
<table href="ch12.html#id5285043" id="id5285043">
<title>Table 12-6. Texture Image Sources</title>
</table>
</section>
<section href="ch12.html#id5285289" id="id5285289">
<title>Video Texturing</title>
</section>
<section href="ch12.html#id5285367" id="id5285367">
<title>Texture Management</title>
<table href="ch12.html#id5286087" id="id5286087">
<title>Table 12-7. Texture Load Modes</title>
</table>
</section>
<section href="ch12.html#id5286730" id="id5286730">
<title>Texture Formats</title>
</section>
<section href="ch12.html#id5287362" id="id5287362">
<title>Controlling Texture LOD with pfTexLOD</title>
</section>
<section href="ch12.html#id5287569" id="id5287569">
<title>Setting the Texture Environment with pfTexEnv</title>
</section>
<section href="ch12.html#LE27919-PARENT" id="LE27919-PARENT">
<title>Automatic Texture Coordinate Generation</title>
<table href="ch12.html#id5287780" id="id5287780">
<title>Table 12-8. Texture Generation Modes</title>
</table>
</section>
<section href="ch12.html#LE19278-PARENT" id="LE19278-PARENT">
<title>Lighting</title>
</section>
<section href="ch12.html#id5288741" id="id5288741">
<title>Materials</title>
</section>
<section href="ch12.html#id5288927" id="id5288927">
<title>Color Tables</title>
</section>
<section href="ch12.html#LE31735-PARENT" id="LE31735-PARENT">
<title>Fog</title>
<table href="ch12.html#id5289152" id="id5289152">
<title>Table 12-9. pfFog Tokens</title>
</table>
</section>
<section href="ch12.html#id5289585" id="id5289585">
<title>Highlights</title>
<table href="ch12.html#id5289719" id="id5289719">
<title>Table 12-10. pfHlightMode() Tokens</title>
</table>
</section>
</section>
<section href="ch12.html#id5290296" id="id5290296">
<title>Graphics Library Matrix Routines</title>
<table href="ch12.html#id5290330" id="id5290330">
<title>Table 12-11. Matrix Manipulation Routines</title>
</table>
</section>
<section href="ch12.html#id5290653" id="id5290653">
<title>Sprite Transformations</title>
<table href="ch12.html#id5290881" id="id5290881">
<title>Table 12-12. pfSprite Rotation Modes</title>
</table>
</section>
<section href="ch12.html#LE35240-PARENT" id="LE35240-PARENT">
<title>Display Lists</title>
<section href="ch12.html#id5291496" id="id5291496">
<title>Combining Display Lists</title>
</section>
</section>
<section href="ch12.html#id5291535" id="id5291535">
<title>State Management</title>
<section href="ch12.html#id5291751" id="id5291751">
<title>Pushing and Popping State</title>
<example href="ch12.html#LE73500-PARENT" id="LE73500-PARENT">
<title>Example 12-2. Pushing and Popping Graphics State</title>
</example>
</section>
</section>
<section href="ch12.html#id5291894" id="id5291894">
<title>State Override</title>
<example href="ch12.html#LE84470-PARENT" id="LE84470-PARENT">
<title>Example 12-3. Using pfOverride()</title>
</example>
</section>
<section href="ch12.html#LE27335-PARENT" id="LE27335-PARENT">
<title>pfGeoState</title>
<section href="ch12.html#id5292070" id="id5292070">
<title>Local and Global State</title>
</section>
<section href="ch12.html#id5292613" id="id5292613">
<title>Applying pfGeoStates</title>
<example href="ch12.html#LE88012-PARENT" id="LE88012-PARENT">
<title>Example 12-4. Inheriting State</title>
</example>
</section>
<section href="ch12.html#LE25890-PARENT" id="LE25890-PARENT">
<title>pfGeoSets and pfGeoStates</title>
<table href="ch12.html#id5292909" id="id5292909">
<title>Table 12-13. pfGeoState Routines</title>
</table>
<figure href="ch12.html#id5293386" id="id5293386">
<title>Figure 12-1. pfGeoState Structure</title>
</figure>
</section>
<section href="ch12.html#id5293408" id="id5293408">
<title>Multitexture Support in pfGeoState</title>
<figure href="ch12.html#id5293441" id="id5293441">
<title>Figure 12-2. Generating the Color of a Multitextured Pixel</title>
</figure>
</section>
</section>
</section>
</chapter>
<chapter href="ch13.html" id="LE34316-PARENT">
<title>Chapter 13. Shaders</title>
<section href="ch13.html#id5293740" id="id5293740">
<title>Setting Up Shaded pfGeoSets</title>
</section>
<section href="ch13.html#id5293854" id="id5293854">
<title>Textures and Texture Coordinates</title>
</section>
<section href="ch13.html#id5294173" id="id5294173">
<title>OpenGL Shader and OpenGL Performer</title>
</section>
</chapter>
<chapter href="ch14.html" id="LE13233-PARENT">
<title>Chapter 14. Using Scalable Graphics Hardware</title>
<section href="ch14.html#LE36585-PARENT" id="LE36585-PARENT">
<title>Using OpenGL Performer with a DPLEX</title>
<section href="ch14.html#LE40818-PARENT" id="LE40818-PARENT">
<title>Hyperpipe Concepts</title>
</section>
<section href="ch14.html#LE13620-PARENT" id="LE13620-PARENT">
<title>Configuring Hyperpipes
</title>
<section href="ch14.html#id5294963" id="id5294963">
<title>Establishing the Number of Graphic Pipes</title>
<figure href="ch14.html#id5295005" id="id5295005">
<title>Figure 14-1. pfPipes Creating pfHyperpipes</title>
</figure>
<figure href="ch14.html#id5295089" id="id5295089">
<title>Figure 14-2. Multiple H
yperpipes</title>
</figure>
<example href="ch14.html#LE11419-PARENT" id="LE11419-PARENT">
<title>Example 14-1. Configuring a System with Three Hyperpipe Groups</title>
</example>
</section>
<section href="ch14.html#id5295272" id="id5295272">
<title>Using the Default Hyperpipe Mapping to Graphic Pipes</title>
<figure href="ch14.html#id5295352" id="id5295352">
<title>Figure 14-3. Default Hyperpipe Mapping to Graphic Pipes</title>
</figure>
</section>
<section href="ch14.html#id5295395" id="id5295395">
<title>Using Nondefault Hyperpipe Mappings to Graphics Pipes</title>
<example href="ch14.html#LE25179-PARENT" id="LE25179-PARENT">
<title>Example 14-2. Mapping Hyperpipes to Graphic Pipes</title>
</example>
<example href="ch14.html#LE35781-PARENT" id="LE35781-PARENT">
<title>Example 14-3. More Complete Example: Mapping Hyperpipes to Graphic Pipes</title>
</example>
</section>
</section>
<section href="ch14.html#LE14237-PARENT" id="LE14237-PARENT">
<title>Configuring pfPipeWindows and pfChannels</title>
<figure href="ch14.html#id5295842" id="id5295842">
<title>Figure 14-4. Attaching Objects to the Master pfPipe</title>
</figure>
<table href="ch14.html#id5295887" id="id5295887">
<title>Table 14-1. pfPipeWindow Functions That Do Not Propagate </title>
</table>
<section href="ch14.html#id5296870" id="id5296870">
<title>Clones</title>
<example href="ch14.html#LE32094-PARENT" id="LE32094-PARENT">
<title>Example 14-4. Set FBConfigAttrs for Each pfPipeWindow</title>
</example>
<example href="ch14.html#LE31185-PARENT" id="LE31185-PARENT">
<title>Example 14-5. Search the pfPipeWindow List of the pfPipe</title>
</example>
</section>
<section href="ch14.html#id5297008" id="id5297008">
<title>Synchronization</title>
</section>
</section>
<section href="ch14.html#LE32080-PARENT" id="LE32080-PARENT">
<title>Programming with Hyperpipes</title>
</section>
</section>
<section href="ch14.html#LE37463-PARENT" id="LE37463-PARENT">
<title>Using OpenGL Performer with an SGI Scalable Graphics Compositor</title>
<section href="ch14.html#LE12132-PARENT" id="LE12132-PARENT">
<title>How the Compositor Functions</title>
<figure href="ch14.html#id5297590" id="id5297590">
<title>Figure 14-5. Hardware Composition Schemes</title>
</figure>
</section>
<section href="ch14.html#LE30693-PARENT" id="LE30693-PARENT">
<title>Using the pfCompositor Class</title>
<figure href="ch14.html#id5297763" id="id5297763">
<title>Figure 14-6. Decomposition Modes for pfCompositor</title>
</figure>
<table href="ch14.html#id5297864" id="id5297864">
<title>Table 14-2. Functions for Managing Compositors</title>
</table>
</section>
<section href="ch14.html#LE38724-PARENT" id="LE38724-PARENT">
<title>Load Balancing</title>
<table href="ch14.html#id5299564" id="id5299564">
<title>Table 14-3. Load Balancing Functions</title>
</table>
</section>
</section>
<section href="ch14.html#LE27712-PARENT" id="LE27712-PARENT">
<title>Using OpenGL Performer with GPUs</title>
<section href="ch14.html#LE39689-PARENT" id="LE39689-PARENT">
<title>The pfGProgram Class</title>
</section>
<section href="ch14.html#LE24373-PARENT" id="LE24373-PARENT">
<title>The pfGProgramParms Class</title>
</section>
<section href="ch14.html#LE34771-PARENT" id="LE34771-PARENT">
<title>The pfVertexProgram and pfFragmentProgram Classes</title>
</section>
</section>
</chapter>
<chapter href="ch15.html" id="LE89411-PARENT">
<title>Chapter 15. ClipTextures</title>
<section href="ch15.html#LE12842-PARENT" id="LE12842-PARENT">
<title>Overview</title>
<figure href="ch15.html#id5301127" id="id5301127">
<title>Figure 15-1. Cliptexture Components</title>
</figure>
<section href="ch15.html#id5301209" id="id5301209">
<title>Cliptexture Levels</title>
<figure href="ch15.html#id5301287" id="id5301287">
<title>Figure 15-2. Image Cache Components</title>
</figure>
</section>
<section href="ch15.html#id5301355" id="id5301355">
<title>Cliptexture Assumptions</title>
<section href="ch15.html#id5301423" id="id5301423">
<title>Why Do These Assumptions Work?</title>
</section>
</section>
<section href="ch15.html#id5301535" id="id5301535">
<title>Image Cache</title>
<figure href="ch15.html#id5301597" id="id5301597">
<title>Figure 15-3. Mem Region Update</title>
</figure>
<figure href="ch15.html#id5301661" id="id5301661">
<title>Figure 15-4. Tex Region Update</title>
</figure>
<figure href="ch15.html#id5301714" id="id5301714">
<title>Figure 15-5. Cliptexture Cache Hierarchy</title>
</figure>
</section>
<section href="ch15.html#id5301733" id="id5301733">
<title>Toroidal Loading</title>
<section href="ch15.html#id5301792" id="id5301792">
<title>Invalid Borders</title>
<figure href="ch15.html#id5301892" id="id5301892">
<title>Figure 15-6. Invalid Border</title>
</figure>
</section>
</section>
<section href="ch15.html#id5301915" id="id5301915">
<title>Updating the Clipce
nter</title>
<figure href="ch15.html#id5301942" id="id5301942">
<title>Figure 15-7. Clipcenter Moving</title>
</figure>
</section>
<section href="ch15.html#id5301979" id="id5301979">
<title>Virtual Cliptextures on InfiniteReality Systems</title>
<figure href="ch15.html#id5302122" id="id5302122">
<title>Figure 15-8. Virtual Cliptexture Concepts</title>
</figure>
</section>
<section href="ch15.html#id5302150" id="id5302150">
<title>Cliptexture Support Requirements</title>
<section href="ch15.html#id5302163" id="id5302163">
<title>Centering</title>
</section>
<section href="ch15.html#id5302199" id="id5302199">
<title>Applying</title>
</section>
<section href="ch15.html#id5302213" id="id5302213">
<title>Texel Data</title>
</section>
</section>
<section href="ch15.html#id5302269" id="id5302269">
<title>Special Features</title>
<section href="ch15.html#id5302280" id="id5302280">
<title>Insets
</title>
</section>
<section href="ch15.html#id5302315" id="id5302315">
<title>Virtualization on InfiniteReality Systems</title>
</section>
<section href="ch15.html#id5302337" id="id5302337">
<title>Multiple Pipe Support</title>
</section>
</section>
<section href="ch15.html#LE20234-PARENT" id="LE20234-PARENT">
<title>How Cliptextures Interact with the Rest of the System</title>
<section href="ch15.html#id5302375" id="id5302375">
<title>Geostates</title>
</section>
<section href="ch15.html#id5302391" id="id5302391">
<title>Pipes</title>
</section>
<section href="ch15.html#id5302458" id="id5302458">
<title>Channels</title>
</section>
</section>
<section href="ch15.html#id5302524" id="id5302524">
<title>Cliptexture Support in OpenGL Performer</title>
<section href="ch15.html#id5302536" id="id5302536">
<title>
libpr Support</title>
</section>
<section href="ch15.html#id5302599" id="id5302599">
<title>
libpf Support</title>
</section>
<section href="ch15.html#id5302654" id="id5302654">
<title>
libpfutil Support</title>
</section>
<section href="ch15.html#id5302909" id="id5302909">
<title>
libpfdu Support</title>
</section>
<section href="ch15.html#id5303046" id="id5303046">
<title>
libpfdb Support</title>
</section>
<section href="ch15.html#id5303192" id="id5303192">
<title>Sample Applications</title>
</section>
</section>
<section href="ch15.html#id5303227" id="id5303227">
<title>Cliptexture Manipulation</title>
<section href="ch15.html#id5303242" id="id5303242">
<title>Load Cont
rol</title>
</section>
<section href="ch15.html#id5303274" id="id5303274">
<title>Invalid Border</title>
</section>
<section href="ch15.html#id5303297" id="id5303297">
<title>S
hare Masks</title>
</section>
<section href="ch15.html#id5303319" id="id5303319">
<title>Read Function</title>
</section>
<section href="ch15.html#id5303373" id="id5303373">
<title>Read Queue Sorting</title>
</section>
</section>
</section>
<section href="ch15.html#LE55825-PARENT" id="LE55825-PARENT">
<title>Cliptexture API</title>
</section>
<section href="ch15.html#LE65652-PARENT" id="LE65652-PARENT">
<title>Preprocessing ClipTextures</title>
<section href="ch15.html#LE61732-PARENT" id="LE61732-PARENT">
<title>Building a MIPmap</title>
<table href="ch15.html#id5303711" id="id5303711">
<title>Table 15-1. Tiling Algorithms</title>
</table>
</section>
<section href="ch15.html#id5303928" id="id5303928">
<title>Formatting Im
age Data</title>
</section>
<section href="ch15.html#id5303991" id="id5303991">
<title>Tiling an Im
age</title>
<section href="ch15.html#id5304119" id="id5304119">
<title>Tile Size</title>
</section>
</section>
</section>
<section href="ch15.html#LE96098-PARENT" id="LE96098-PARENT">
<title>Cliptexture Configuration</title>
<section href="ch15.html#id5304194" id="id5304194">
<title>Configuration Considerations</title>
</section>
<section href="ch15.html#id5304256" id="id5304256">
<title>Load-Time Configuration </title>
</section>
<section href="ch15.html#id5304354" id="id5304354">
<title>Post-Load-Time Configuration </title>
</section>
</section>
<section href="ch15.html#LE88860-PARENT" id="LE88860-PARENT">
<title>Configuration API</title>
<section href="ch15.html#id5304454" id="id5304454">
<title>libpr Functionality</title>
<section href="ch15.html#id5304584" id="id5304584">
<title>Configuring an Image Cache Level</title>
</section>
<section href="ch15.html#id5304922" id="id5304922">
<title>Configuring an Image Cache Proto Tile </title>
</section>
<section href="ch15.html#id5305266" id="id5305266">
<title>Configuring an Image Cache </title>
</section>
<section href="ch15.html#id5305662" id="id5305662">
<title>Configuring a 
pfTexture</title>
</section>
<section href="ch15.html#id5305838" id="id5305838">
<title>Configuring the Default Tile</title>
</section>
<section href="ch15.html#id5306006" id="id5306006">
<title>Configuring Image Tiles</title>
</section>
</section>
<section href="ch15.html#id5306252" id="id5306252">
<title>Configuration Utilities</title>
<section href="ch15.html#id5306316" id="id5306316">
<title>Cliptexture Configuration</title>
</section>
<section href="ch15.html#id5306521" id="id5306521">
<title>Image Cache Configuration</title>
</section>
<section href="ch15.html#id5306750" id="id5306750">
<title>Filling in the Structures</title>
</section>
</section>
<section href="ch15.html#id5306900" id="id5306900">
<title>Configuration Files</title>
<section href="ch15.html#id5306955" id="id5306955">
<title>Using Configuration Files</title>
</section>
<section href="ch15.html#id5307020" id="id5307020">
<title>Creating Configuration Files</title>
</section>
<section href="ch15.html#id5307298" id="id5307298">
<title>Configuration File Tips</title>
</section>
<section href="ch15.html#id5307406" id="id5307406">
<title>Cliptexture Loaders</title>
</section>
<section href="ch15.html#LE18085-PARENT" id="LE18085-PARENT">
<title>Image Cache Configuration File Details</title>
</section>
<section href="ch15.html#id5307626" id="id5307626">
<title>Configuration Fields</title>
<table href="ch15.html#id5307660" id="id5307660">
<title>Table 15-2. Image Cache Configuration File Fields</title>
</table>
</section>
<section href="ch15.html#id5308189" id="id5308189">
<title>Image Cache Configuration File Description</title>
</section>
<section href="ch15.html#id5308322" id="id5308322">
<title>
ext_format, 
int_format, and 
img_format</title>
</section>
<section href="ch15.html#id5308420" id="id5308420">
<title>
icache_size, 
mem_region_size, and 
tex_region_size</title>
</section>
<section href="ch15.html#id5308606" id="id5308606">
<title>
tile_format and 
tile_params</title>
<table href="ch15.html#id5308737" id="id5308737">
<title>Table 15-3. Image Tile Filename Tokens</title>
</table>
</section>
<section href="ch15.html#id5308995" id="id5308995">
<title>header_offset, tiles_in_file, and tile_size</title>
</section>
<section href="ch15.html#id5309047" id="id5309047">
<title>
num_streams, 
s_streams, 
t_streams, and 
r_streams</title>
</section>
<section href="ch15.html#LE85644-PARENT" id="LE85644-PARENT">
<title>default_tile</title>
</section>
<section href="ch15.html#id5309228" id="id5309228">
<title>Cliptexture Configuration File Details</title>
</section>
<section href="ch15.html#id5309356" id="id5309356">
<title>Configuration Fields</title>
<table href="ch15.html#id5309395" id="id5309395">
<title>Table 15-4. Cliptexture Configuration File Fields</title>
</table>
</section>
<section href="ch15.html#id5310030" id="id5310030">
<title>Cliptexture Configuration File Description</title>
</section>
<section href="ch15.html#id5310142" id="id5310142">
<title>
ext_format, 
int_format, and 
img_format</title>
</section>
<section href="ch15.html#id5310200" id="id5310200">
<title>
virt_size and 
clip_size</title>
</section>
<section href="ch15.html#id5310248" id="id5310248">
<title>
invalid_border</title>
</section>
<section href="ch15.html#id5310307" id="id5310307">
<title>
smallest_icache</title>
</section>
<section href="ch15.html#id5310356" id="id5310356">
<title>
icache_files, 
icache_format and 
icache_params</title>
</section>
<section href="ch15.html#id5310488" id="id5310488">
<title>
icache_files</title>
<table href="ch15.html#id5310538" id="id5310538">
<title>Table 15-5. Parameter Tokens</title>
</table>
</section>
<section href="ch15.html#id5310713" id="id5310713">
<title>tile_files</title>
</section>
<section href="ch15.html#id5310798" id="id5310798">
<title>
header_offset, 
tiles_in_file, and 
tile_size</title>
</section>
<section href="ch15.html#id5310904" id="id5310904">
<title>
tile_base, 
tile_format and 
tile_params</title>
<table href="ch15.html#id5311017" id="id5311017">
<title>Table 15-6. Image Tile Filename Tokens</title>
</table>
</section>
<section href="ch15.html#id5311280" id="id5311280">
<title>Optional Image Cache Configuration Files</title>
</section>
</section>
</section>
<section href="ch15.html#LE81697-PARENT" id="LE81697-PARENT">
<title>Post-Scene Graph Load Configuration</title>
<section href="ch15.html#id5311437" id="id5311437">
<title>MPClipTextures</title>
<figure href="ch15.html#id5311502" id="id5311502">
<title>Figure 15-9. pfMPClipTexture Connections</title>
</figure>
<section href="ch15.html#id5311521" id="id5311521">
<title>Connecting MPcliptextures to pfPipes</title>
</section>
<section href="ch15.html#id5311846" id="id5311846">
<title>
libpf Functionality</title>
</section>
</section>
<section href="ch15.html#id5311910" id="id5311910">
<title>pfMPClipTexture Utilities</title>
<section href="ch15.html#id5311985" id="id5311985">
<title>Clipcenter Node</title>
<figure href="ch15.html#id5312098" id="id5312098">
<title>Figure 15-10. pfuClipCenterNode Connections</title>
</figure>
</section>
</section>
<section href="ch15.html#id5312186" id="id5312186">
<title>Using Cliptextures with Multiple Pipes</title>
<figure href="ch15.html#id5312280" id="id5312280">
<title>Figure 15-11. Master and Slave Cliptexture Resource Sharing</title>
</figure>
<section href="ch15.html#id5312318" id="id5312318">
<title>Making Masters and Slaves</title>
</section>
<section href="ch15.html#id5312416" id="id5312416">
<title>Multipipe Cliptexture API</title>
</section>
<section href="ch15.html#id5312555" id="id5312555">
<title>Multipipe Utilities</title>
</section>
<section href="ch15.html#id5312604" id="id5312604">
<title>Master/Slave Share Masks</title>
</section>
</section>
<section href="ch15.html#id5312762" id="id5312762">
<title>Texture Memory and Hardware Support Checking</title>
</section>
</section>
<section href="ch15.html#LE28679-PARENT" id="LE28679-PARENT">
<title>Manipulating Cliptextures</title>
<section href="ch15.html#id5312915" id="id5312915">
<title>Cliptexture Load Control</title>
<section href="ch15.html#id5312969" id="id5312969">
<title>Dynamic Texture Resolution </title>
</section>
<section href="ch15.html#id5313062" id="id5313062">
<title>Load Control API</title>
</section>
<section href="ch15.html#id5313175" id="id5313175">
<title>Download Time</title>
</section>
<section href="ch15.html#id5313225" id="id5313225">
<title>Cost Tables</title>
</section>
<section href="ch15.html#id5176926" id="id5176926">
<title>Changing Levels</title>
</section>
<section href="ch15.html#id5177075" id="id5177075">
<title>Total Texload Time and Texload Time Fraction</title>
</section>
<section href="ch15.html#id5177140" id="id5177140">
<title>Read Queue Sorting</title>
</section>
</section>
<section href="ch15.html#LE16588-PARENT" id="LE16588-PARENT">
<title>Invalidating Cliptextures</title>
</section>
<section href="ch15.html#LE97423-PARENT" id="LE97423-PARENT">
<title>Virtual ClipTextures</title>
<section href="ch15.html#id5314200" id="id5314200">
<title>Selecting the Levels</title>
</section>
<section href="ch15.html#id5314406" id="id5314406">
<title>How to Set Virtual Cliptexture Parameters</title>
</section>
<section href="ch15.html#id5314492" id="id5314492">
<title>Per-Frame Setting of Virtual Cliptexture Parameters </title>
</section>
<section href="ch15.html#id5314650" id="id5314650">
<title>Per-Tile Setting of Virtual Cliptexture Parameters </title>
</section>
<section href="ch15.html#id5314721" id="id5314721">
<title>Tiling Strategies</title>
</section>
<section href="ch15.html#id5314854" id="id5314854">
<title>Doing Per-tile Updates </title>
</section>
<section href="ch15.html#id5314984" id="id5314984">
<title>How to Choose Virt
ual Cliptexture Parameters</title>
</section>
</section>
<section href="ch15.html#LE30636-PARENT" id="LE30636-PARENT">
<title>Custom Read Functions</title>
</section>
</section>
<section href="ch15.html#LE25091-PARENT" id="LE25091-PARENT">
<title>Using Cliptextures</title>
<section href="ch15.html#LE18285-PARENT" id="LE18285-PARENT">
<title>Cliptexture Insets</title>
<figure href="ch15.html#id5315475" id="id5315475">
<title>Figure 15-12. Cliptexture Insets</title>
</figure>
<section href="ch15.html#id5315501" id="id5315501">
<title>Adding Ins
ets to Cliptextured Data</title>
</section>
<section href="ch15.html#id5315541" id="id5315541">
<title>Ins
ets and DTR</title>
</section>
<section href="ch15.html#id5315577" id="id5315577">
<title>Building Insets </title>
</section>
<section href="ch15.html#id5315649" id="id5315649">
<title>In
set Boundaries</title>
</section>
<section href="ch15.html#id5315722" id="id5315722">
<title>Supersampled Data</title>
<figure href="ch15.html#id5315748" id="id5315748">
<title>Figure 15-13. Supersampled Inset Boundary</title>
</figure>
</section>
<section href="ch15.html#id5315805" id="id5315805">
<title>Multiple Insets</title>
</section>
</section>
<section href="ch15.html#LE99982-PARENT" id="LE99982-PARENT">
<title>Estimating Cliptexture Memory Usage</title>
<section href="ch15.html#id5315939" id="id5315939">
<title>System Memory Estimation</title>
</section>
<section href="ch15.html#id5316106" id="id5316106">
<title>Example of Estimating System Memory Requirements</title>
<example href="ch15.html#LE77895-PARENT" id="LE77895-PARENT">
<title>Example 15-1. Estimating System Memory Requirements</title>
</example>
</section>
<section href="ch15.html#id5316218" id="id5316218">
<title>Texture Memory Estimation</title>
</section>
<section href="ch15.html#id5316349" id="id5316349">
<title>Texture Memory Usage: A Further Complication</title>
</section>
</section>
<section href="ch15.html#id5316634" id="id5316634">
<title>Using Cliptextures in Multipipe Applications</title>
<section href="ch15.html#id5316665" id="id5316665">
<title>When to Make Master/Slave Cliptexture Groups</title>
</section>
<section href="ch15.html#id5316732" id="id5316732">
<title>Slave Cliptextures with Offset Centers</title>
<figure href="ch15.html#id5316767" id="id5316767">
<title>Figure 15-14. Offset Slave Tex Regions</title>
</figure>
</section>
</section>
<section href="ch15.html#id5316786" id="id5316786">
<title>Virtualizing Cliptextures</title>
</section>
<section href="ch15.html#id5316906" id="id5316906">
<title>Customizing Load Control</title>
</section>
<section href="ch15.html#LE18849-PARENT" id="LE18849-PARENT">
<title>Custom Read Functions</title>
</section>
<section href="ch15.html#LE51559-PARENT" id="LE51559-PARENT">
<title>Cliptexture Sample Code</title>
<section href="ch15.html#id5317093" id="id5317093">
<title>Test and Demo Pro
grams</title>
</section>
<section href="ch15.html#id5317333" id="id5317333">
<title>OpenGL Performer Cliptexture Applications</title>
</section>
<section href="ch15.html#id5317409" id="id5317409">
<title>Loaders that Support Cliptextures</title>
</section>
<section href="ch15.html#id5317537" id="id5317537">
<title>Cliptexture Utility Code</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch16.html" id="LE79323-PARENT">
<title>Chapter 16. Windows</title>
<section href="ch16.html#LE74990-PARENT" id="LE74990-PARENT">
<title>pfWindows</title>
</section>
<section href="ch16.html#id5317851" id="id5317851">
<title>Creating a pfWindow</title>
<example href="ch16.html#LE62293-PARENT" id="LE62293-PARENT">
<title>Example 16-1. Opening a pfWindow</title>
</example>
<table href="ch16.html#id5318143" id="id5318143">
<title>Table 16-1. pfWinType() Tokens</title>
</table>
</section>
<section href="ch16.html#id5318781" id="id5318781">
<title>Configuring the Framebuffer of a pfWindow</title>
<table href="ch16.html#id5318888" id="id5318888">
<title>Table 16-2. pfWinFBConfigAttrs() Tokens</title>
</table>
</section>
<section href="ch16.html#id5319735" id="id5319735">
<title>pfWindows and GL Windows</title>
<table href="ch16.html#id5320121" id="id5320121">
<title>Table 16-3. Window System Types</title>
</table>
</section>
<section href="ch16.html#LE39965-PARENT" id="LE39965-PARENT">
<title>Manipulating a pfWindow</title>
<table href="ch16.html#id5320677" id="id5320677">
<title>Table 16-4. pfWinMode() Tokens</title>
</table>
<section href="ch16.html#id5321095" id="id5321095">
<title>Alternate Framebuffer Configuration Windows</title>
</section>
<section href="ch16.html#id5321373" id="id5321373">
<title>Window Share Groups</title>
</section>
<section href="ch16.html#id5321488" id="id5321488">
<title>Synchronization of Buffer Swap for Multiple Windows</title>
</section>
</section>
<section href="ch16.html#LE79202-PARENT" id="LE79202-PARENT">
<title>Communicating with the Window System</title>
</section>
<section href="ch16.html#id5321783" id="id5321783">
<title>More pfWindow Examples</title>
<example href="ch16.html#LE68523-PARENT" id="LE68523-PARENT">
<title>Example 16-2. Using the Default Overlay Window</title>
</example>
<example href="ch16.html#LE20615-PARENT" id="LE20615-PARENT">
<title>Example 16-3. Creating a Custom Overlay Window</title>
</example>
<example href="ch16.html#LE46355-PARENT" id="LE46355-PARENT">
<title>Example 16-4. pfWindows and X Input</title>
</example>
</section>
</chapter>
<chapter href="ch17.html" id="LE60096-PARENT">
<title>Chapter 17. pfPipeWindows and pfPipeVideoChannels</title>
<section href="ch17.html#LE10174-PARENT" id="LE10174-PARENT">
<title>Using pfPipeWindows</title>
<section href="ch17.html#LE73076-PARENT" id="LE73076-PARENT">
<title>Creating, Configuring and Opening pfPipeWindow</title>
<example href="ch17.html#LE15564-PARENT" id="LE15564-PARENT">
<title>Example 17-1. Creating a pfPipeWindow</title>
</example>
<table href="ch17.html#id5322698" id="id5322698">
<title>Table 17-1. pfPWinType Tokens</title>
</table>
<example href="ch17.html#LE88854-PARENT" id="LE88854-PARENT">
<title>Example 17-2. pfPipeWindow With Alternate Configuration Windows for Statistics</title>
</example>
<example href="ch17.html#LE89828-PARENT" id="LE89828-PARENT">
<title>Example 17-3. Custom Initialization of pfPipeWindow State</title>
</example>
<table href="ch17.html#id5323887" id="id5323887">
<title>Table 17-2. Processes From Which to Call Main pfPipeWindow Functions</title>
</table>
<example href="ch17.html#id5324794" id="id5324794">
<title>Example 17-4. Configuration of a pfPipeWindow Framebuffer</title>
</example>
</section>
<section href="ch17.html#LE87082-PARENT" id="LE87082-PARENT">
<title>pfPipeWindows in Action</title>
<example href="ch17.html#id5325149" id="id5325149">
<title>Example 17-5. Opening and Closing a pfPipeWindow</title>
</example>
<section href="ch17.html#id5325159" id="id5325159">
<title>Motif</title>
</section>
<section href="ch17.html#id5325265" id="id5325265">
<title>Multiple pfPipeWindows and Multiple pfPipes</title>
</section>
</section>
</section>
<section href="ch17.html#LE23732-PARENT" id="LE23732-PARENT">
<title>Controlling Video Displays</title>
<figure href="ch17.html#id5325538" id="id5325538">
<title>Figure 17-1. Directing Video Output</title>
</figure>
<section href="ch17.html#id5325646" id="id5325646">
<title>Creating a pfPipeVideoChannel</title>
</section>
<section href="ch17.html#id5325784" id="id5325784">
<title>Multiple pfPipeVideoChannels in a pfPipeWindow</title>
</section>
<section href="ch17.html#id5326012" id="id5326012">
<title>Configuring a pfPipeVideoChannel</title>
</section>
<section href="ch17.html#id5326090" id="id5326090">
<title>Use pfPipeVideoChannels to Control Frame Rate</title>
</section>
</section>
</chapter>
<chapter href="ch18.html" id="LE43331-PARENT">
<title>Chapter 18. Managing Nongraphic System Tasks</title>
<section href="ch18.html#id5326432" id="id5326432">
<title>Handling Queues </title>
<figure href="ch18.html#id5326468" id="id5326468">
<title>Figure 18-1. pfQueue Object</title>
</figure>
<section href="ch18.html#id5326544" id="id5326544">
<title>Multiprocessing</title>
</section>
<section href="ch18.html#id5326581" id="id5326581">
<title>Queue Contents</title>
</section>
<section href="ch18.html#id5326600" id="id5326600">
<title>Adding or Retrieving Elements</title>
<section href="ch18.html#id5326703" id="id5326703">
<title>Retrieving Elements from the Queue</title>
</section>
<section href="ch18.html#id5326818" id="id5326818">
<title>Related Methods</title>
<table href="ch18.html#id5326837" id="id5326837">
<title>Table 18-1. Thread Information</title>
</table>
</section>
</section>
<section href="ch18.html#id5327009" id="id5327009">
<title>pfQueue Modes</title>
<section href="ch18.html#id5327053" id="id5327053">
<title>NonSorting Mode</title>
</section>
<section href="ch18.html#id5327096" id="id5327096">
<title>Sorting the pfQueue</title>
</section>
<section href="ch18.html#id5327203" id="id5327203">
<title>Sorting Function</title>
</section>
<section href="ch18.html#id5327364" id="id5327364">
<title>Input and Output Ranges</title>
<table href="ch18.html#id5327414" id="id5327414">
<title>Table 18-2. Default Input and Output Ranges</title>
</table>
</section>
<section href="ch18.html#id5327533" id="id5327533">
<title>Triggering the Sort</title>
</section>
</section>
<section href="ch18.html#LE53772-PARENT" id="LE53772-PARENT">
<title>Running the Sort Process on a Different CPU</title>
</section>
</section>
<section href="ch18.html#id5327675" id="id5327675">
<title>High-Resolution Clocks</title>
<section href="ch18.html#id5327889" id="id5327889">
<title>Video Refresh Counter (VClock)</title>
<table href="ch18.html#id5328019" id="id5328019">
<title>Table 18-3. pfVClock Routines</title>
</table>
</section>
</section>
<section href="ch18.html#LE52905-PARENT" id="LE52905-PARENT">
<title>Memory Allocation</title>
<table href="ch18.html#id5328261" id="id5328261">
<title>Table 18-4. Memory Allocation Routines</title>
</table>
<section href="ch18.html#id5328519" id="id5328519">
<title>Allocating Memory With pfMalloc()</title>
</section>
<section href="ch18.html#id5329268" id="id5329268">
<title>Shared Arenas</title>
</section>
<section href="ch18.html#id5329663" id="id5329663">
<title>Allocating Locks and Semaphores</title>
</section>
<section href="ch18.html#LE41607-PARENT" id="LE41607-PARENT">
<title>Datapools</title>
</section>
<section href="ch18.html#LE43220-PARENT" id="LE43220-PARENT">
<title>
CycleBuffers</title>
<figure href="ch18.html#id5330446" id="id5330446">
<title>Figure 18-2. pfCycleBuffer and pfCycleMemory Overview</title>
</figure>
</section>
</section>
<section href="ch18.html#id5330716" id="id5330716">
<title>Asynchronous I/O (IRIX only)</title>
</section>
<section href="ch18.html#id5331049" id="id5331049">
<title>Error Handling and Notification</title>
<table href="ch18.html#id5331168" id="id5331168">
<title>Table 18-5. pfNotify Routines</title>
</table>
<table href="ch18.html#id5331363" id="id5331363">
<title>Table 18-6. Error Notification Levels</title>
</table>
</section>
<section href="ch18.html#id5331714" id="id5331714">
<title>File Search Paths</title>
<table href="ch18.html#id5331856" id="id5331856">
<title>Table 18-7. pfFilePath Routines</title>
</table>
</section>
</chapter>
<chapter href="ch19.html" id="LE34315-PARENT">
<title>Chapter 19. Dynamic Data</title>
<section href="ch19.html#id5332305" id="id5332305">
<title>
pfFlux</title>
<figure href="ch19.html#id5332349" id="id5332349">
<title>Figure 19-1. How pfFlux and Processes Use Frame Numbers</title>
</figure>
<section href="ch19.html#id5332422" id="id5332422">
<title>Creating and Deleting a pfFlux</title>
</section>
<section href="ch19.html#LE16693-PARENT" id="LE16693-PARENT">
<title>Initializing the Buffers</title>
</section>
<section href="ch19.html#id5332810" id="id5332810">
<title>pfFlux Buffers</title>
<figure href="ch19.html#id5332927" id="id5332927">
<title>Figure 19-2. pfFlux Buffer Structure</title>
</figure>
<section href="ch19.html#id5332985" id="id5332985">
<title>Reading pfFlux Buffers </title>
</section>
<section href="ch19.html#id5333188" id="id5333188">
<title>Writing to pfFlux Buffers</title>
</section>
</section>
<section href="ch19.html#id5333491" id="id5333491">
<title>Coordinating pfFlux and Connected pfEngines </title>
<section href="ch19.html#LE40596-PARENT" id="LE40596-PARENT">
<title>Triggering pfFlux Evaluation</title>
</section>
</section>
<section href="ch19.html#id5334017" id="id5334017">
<title>Synchronized Flux Evaluation</title>
<section href="ch19.html#id5334054" id="id5334054">
<title>Synchronizing pfFluxes with 
Flux Sync Groups</title>
</section>
<section href="ch19.html#id5334212" id="id5334212">
<title>Enabling a Flux Sync Group</title>
</section>
<section href="ch19.html#id5334283" id="id5334283">
<title>Evaluating a Synchronized Flux Group</title>
<figure href="ch19.html#id5334361" id="id5334361">
<title>Figure 19-3. Timing Diagram Showing the Use of Sync Groups</title>
</figure>
</section>
</section>
<section href="ch19.html#id5334506" id="id5334506">
<title>Fluxed Geosets</title>
<example href="ch19.html#LE41390-PARENT" id="LE41390-PARENT">
<title>Example 19-1. Fluxed pfGeoSet</title>
</example>
</section>
<section href="ch19.html#id5334644" id="id5334644">
<title>Fluxed Coordinate Systems</title>
<figure href="ch19.html#id5334664" id="id5334664">
<title>Figure 19-4. pfEngine Driving a pfFlux That Animates a pfFCS Node</title>
</figure>
</section>
<section href="ch19.html#LE14998-PARENT" id="LE14998-PARENT">
<title>
Replacing pfCycleBuffer with pfFlux</title>
<section href="ch19.html#id5334885" id="id5334885">
<title>pfFlux Differences</title>
</section>
<section href="ch19.html#id5334938" id="id5334938">
<title>Converting to pfFlux</title>
</section>
</section>
</section>
<section href="ch19.html#LE70807-PARENT" id="LE70807-PARENT">
<title>pfEngine</title>
<section href="ch19.html#id5335000" id="id5335000">
<title>Creating and Deleting Engines</title>
<table href="ch19.html#id5335020" id="id5335020">
<title>Table 19-1. pfEngine Types</title>
</table>
</section>
<section href="ch19.html#LE50324-PARENT" id="LE50324-PARENT">
<title>Setting Engine Types and Modes</title>
<section href="ch19.html#id5335679" id="id5335679">
<title>PFENG_SUM Engines</title>
</section>
<section href="ch19.html#LE79665-PARENT" id="LE79665-PARENT">
<title>PFENG_MORPH Engines</title>
</section>
<section href="ch19.html#id5335883" id="id5335883">
<title>PFENG_BLEND Engines</title>
</section>
<section href="ch19.html#id5336018" id="id5336018">
<title>PFENG_TRANSFORM Engines</title>
</section>
<section href="ch19.html#id5336034" id="id5336034">
<title>PFENG_ALIGN Engines</title>
</section>
<section href="ch19.html#id5336106" id="id5336106">
<title>PFENG_MATRIX Engines</title>
</section>
<section href="ch19.html#id5336344" id="id5336344">
<title>PFENG_ANIMATE Engines</title>
</section>
<section href="ch19.html#id5336650" id="id5336650">
<title>PFENG_BBOX Engines</title>
</section>
<section href="ch19.html#id5336662" id="id5336662">
<title>PFENG_TIME Engines</title>
</section>
<section href="ch19.html#id5336804" id="id5336804">
<title>PFENG_STROBE Engines</title>
</section>
<section href="ch19.html#id5336923" id="id5336923">
<title>PFENG_USER_FUNCTION Engines</title>
</section>
</section>
<section href="ch19.html#id5337010" id="id5337010">
<title>Setting Engine Sources and Destinations</title>
</section>
<section href="ch19.html#LE56391-PARENT" id="LE56391-PARENT">
<title>Setting Engine Masks</title>
</section>
<section href="ch19.html#id5337193" id="id5337193">
<title>Setting Engine Iterations</title>
</section>
<section href="ch19.html#LE72597-PARENT" id="LE72597-PARENT">
<title>Setting Engine Ranges</title>
</section>
<section href="ch19.html#id5337379" id="id5337379">
<title>Evaluating pfEngines</title>
</section>
</section>
<section href="ch19.html#LE95399-PARENT" id="LE95399-PARENT">
<title>Animating a Geometry
</title>
<example href="ch19.html#id5337778" id="id5337778">
<title>Example 19-2. Connecting Engines and Fluxes</title>
</example>
</section>
</chapter>
<chapter href="ch20.html" id="LE35630-PARENT">
<title>Chapter 20. Active Surface Definition</title>
<section href="ch20.html#id5337888" id="id5337888">
<title>Overview</title>
</section>
<section href="ch20.html#id5338096" id="id5338096">
<title>Using ASD</title>
<section href="ch20.html#id5338132" id="id5338132">
<title>LOD Reduction</title>
<section href="ch20.html#id5338185" id="id5338185">
<title>Triangulated Irregular Networks</title>
</section>
</section>
<section href="ch20.html#id5338228" id="id5338228">
<title>Hierarchical Structure</title>
<figure href="ch20.html#id5338252" id="id5338252">
<title>Figure 20-1. Morphing Range Between LODs</title>
</figure>
<figure href="ch20.html#id5338324" id="id5338324">
<title>Figure 20-2. Large Geometry</title>
</figure>
</section>
</section>
<section href="ch20.html#id5338358" id="id5338358">
<title>ASD Solution Flow Chart</title>
<figure href="ch20.html#id5338479" id="id5338479">
<title>Figure 20-3. ASD Information Flow</title>
</figure>
</section>
<section href="ch20.html#id5338502" id="id5338502">
<title>A Very Simple ASD</title>
<figure href="ch20.html#id5338536" id="id5338536">
<title>Figure 20-4. A Very Simple pfASD</title>
</figure>
<section href="ch20.html#id5338565" id="id5338565">
<title>Morphing Vector</title>
</section>
<section href="ch20.html#id5338635" id="id5338635">
<title>
A Very Complex ASD</title>
</section>
</section>
<section href="ch20.html#id5338690" id="id5338690">
<title>ASD Elements</title>
<section href="ch20.html#id5338742" id="id5338742">
<title>Vertices</title>
<figure href="ch20.html#id5338846" id="id5338846">
<title>Figure 20-5. Reference Posit
ions</title>
</figure>
<figure href="ch20.html#id5338946" id="id5338946">
<title>Figure 20-6. Triangulated Image</title>
</figure>
<figure href="ch20.html#id5338981" id="id5338981">
<title>Figure 20-7. LOD1 Replaced by LOD2</title>
</figure>
</section>
<section href="ch20.html#id5339110" id="id5339110">
<title>Evaluation Function</title>
</section>
</section>
<section href="ch20.html#id5339179" id="id5339179">
<title>Data Structures</title>
<figure href="ch20.html#id5339205" id="id5339205">
<title>Figure 20-8. Data Structures</title>
</figure>
<figure href="ch20.html#id5339340" id="id5339340">
<title>Figure 20-9. ASD Data Structures</title>
</figure>
<section href="ch20.html#id5339366" id="id5339366">
<title>Triangle Data Structure</title>
<table href="ch20.html#id5339414" id="id5339414">
<title>Table 20-1. Fields in the Triangle Data Structure</title>
</table>
<section href="ch20.html#id5339621" id="id5339621">
<title>Triangle IDs and LOD Levels</title>
</section>
<section href="ch20.html#id5339704" id="id5339704">
<title>Discontinuous, Neighboring LODs</title>
<figure href="ch20.html#id5339782" id="id5339782">
<title>Figure 20-10. Discontinuous, Neighboring LODs</title>
</figure>
</section>
<section href="ch20.html#id5339825" id="id5339825">
<title>Triangle Strips</title>
<figure href="ch20.html#id5339868" id="id5339868">
<title>Figure 20-11. Triangle Mesh</title>
</figure>
<figure href="ch20.html#id5340013" id="id5340013">
<title>Figure 20-12. Using the tsid Field</title>
</figure>
</section>
<section href="ch20.html#id5340119" id="id5340119">
<title>Vertex and Reference Point Arrays</title>
<figure href="ch20.html#id5340194" id="id5340194">
<title>Figure 20-13. Vertex and Reference Point Arrays, Counter-Clockwise Ordering </title>
</figure>
</section>
<section href="ch20.html#id5340292" id="id5340292">
<title>Attributes</title>
</section>
</section>
<section href="ch20.html#LE13076-PARENT" id="LE13076-PARENT">
<title>Attribute Data Array</title>
<section href="ch20.html#id5340460" id="id5340460">
<title>Setting the Attributes</title>
</section>
<section href="ch20.html#id5340557" id="id5340557">
<title>Global Attributes</title>
</section>
</section>
<section href="ch20.html#LE72950-PARENT" id="LE72950-PARENT">
<title>Vertex Data Structure</title>
<figure href="ch20.html#id5340770" id="id5340770">
<title>Figure 20-14. V
ertex Neighborhoods</title>
</figure>
</section>
<section href="ch20.html#LE41588-PARENT" id="LE41588-PARENT">
<title>Default Evaluation Function</title>
<section href="ch20.html#id5340945" id="id5340945">
<title>Overriding the Default Evaluation Function</title>
</section>
</section>
</section>
<section href="ch20.html#id5341089" id="id5341089">
<title>pfASD Queries</title>
<section href="ch20.html#id5341191" id="id5341191">
<title>Aligning an Object to the Surface</title>
<section href="ch20.html#id5341218" id="id5341218">
<title>Casting a 
Shadow</title>
</section>
<section href="ch20.html#id5341244" id="id5341244">
<title>Generating Decals </title>
</section>
</section>
<section href="ch20.html#id5341272" id="id5341272">
<title>Adding a Q
uery Array</title>
</section>
</section>
<section href="ch20.html#id5341384" id="id5341384">
<title>Using ASD for Multiple Channels</title>
<section href="ch20.html#LE10463-PARENT" id="LE10463-PARENT">
<title>Connecting Channels</title>
</section>
</section>
<section href="ch20.html#id5341522" id="id5341522">
<title>Combining pfClipTex
ture and pfASD</title>
</section>
<section href="ch20.html#id5341737" id="id5341737">
<title>ASD Evaluation Function Timing</title>
<figure href="ch20.html#id5341798" id="id5341798">
<title>Figure 20-15. pfASD Evaluation Process</title>
</figure>
<section href="ch20.html#id5341831" id="id5341831">
<title>Query Results</title>
</section>
<section href="ch20.html#id5341868" id="id5341868">
<title>Aligning a Geometry With a pfASD Surface Example</title>
<figure href="ch20.html#id5341931" id="id5341931">
<title>Figure 20-16. Example Setup for Geometry Alignment</title>
</figure>
</section>
<section href="ch20.html#LE90512-PARENT" id="LE90512-PARENT">
<title>Aligning Light Points Above a pfASD Surface Example</title>
<figure href="ch20.html#id5342149" id="id5342149">
<title>Figure 20-17. Aligning Light Points Above a pfASD Surface</title>
</figure>
<example href="ch20.html#id5342190" id="id5342190">
<title>Example 20-1. Aligning Light Points Above a pfASD Surface</title>
</example>
</section>
</section>
<section href="ch20.html#id5342263" id="id5342263">
<title>Paging
</title>
<section href="ch20.html#id5342324" id="id5342324">
<title>
Interest Area</title>
<figure href="ch20.html#id5342362" id="id5342362">
<title>Figure 20-18. Tiles at Different LODs</title>
</figure>
</section>
<section href="ch20.html#LE71240-PARENT" id="LE71240-PARENT">
<title>Preprocessing for Paging</title>
<section href="ch20.html#id5342494" id="id5342494">
<title>Order of Paging</title>
</section>
</section>
<section href="ch20.html#id5342524" id="id5342524">
<title>Multi-resolution Paging</title>
</section>
</section>
</chapter>
<chapter href="ch21.html" id="LE61568-PARENT">
<title>Chapter 21. Light Points</title>
<section href="ch21.html#id5342740" id="id5342740">
<title>Uses of Light Points</title>
<figure href="ch21.html#id5342849" id="id5342849">
<title>Figure 21-1. VASI Landing Light</title>
</figure>
</section>
<section href="ch21.html#id5342873" id="id5342873">
<title>Creating a Light Point</title>
</section>
<section href="ch21.html#id5342935" id="id5342935">
<title>Setting the Behavior of Light Points</title>
<section href="ch21.html#id5343028" id="id5343028">
<title>Intensity</title>
</section>
<section href="ch21.html#id5343063" id="id5343063">
<title>Directionality</title>
<section href="ch21.html#id5343088" id="id5343088">
<title>Enabling Directionality </title>
</section>
</section>
<section href="ch21.html#id5343210" id="id5343210">
<title>Emanation Shape</title>
<figure href="ch21.html#id5343246" id="id5343246">
<title>Figure 21-2. Attenuation Shape</title>
</figure>
<section href="ch21.html#id5343290" id="id5343290">
<title>Shape</title>
</section>
<section href="ch21.html#id5343314" id="id5343314">
<title>Rotation</title>
</section>
<section href="ch21.html#id5343326" id="id5343326">
<title>Falloff</title>
<figure href="ch21.html#id5343363" id="id5343363">
<title>Figure 21-3. Attenuation of Light</title>
</figure>
</section>
</section>
<section href="ch21.html#id5343406" id="id5343406">
<title>Distance</title>
</section>
<section href="ch21.html#id5343462" id="id5343462">
<title>Attenuation through Fog</title>
<section href="ch21.html#id5343492" id="id5343492">
<title>Enabling Punch-Through</title>
</section>
</section>
<section href="ch21.html#id5343541" id="id5343541">
<title>Size</title>
<section href="ch21.html#id5343589" id="id5343589">
<title>Size Limitations</title>
</section>
<section href="ch21.html#id5343608" id="id5343608">
<title>Limiting Size Calculations</title>
</section>
<section href="ch21.html#id5343634" id="id5343634">
<title>Enabling Perspective</title>
</section>
</section>
<section href="ch21.html#id5343687" id="id5343687">
<title>Fading</title>
<section href="ch21.html#id5343723" id="id5343723">
<title>Fading Calculation</title>
</section>
<section href="ch21.html#id5343750" id="id5343750">
<title>Enabling Fading</title>
</section>
</section>
</section>
<section href="ch21.html#id5343814" id="id5343814">
<title>Callbacks</title>
<example href="ch21.html#LE46067-PARENT" id="LE46067-PARENT">
<title>Example 21-1. Raster Callback Skeleton</title>
</example>
<section href="ch21.html#id5344058" id="id5344058">
<title>Multisample, Size, and Alpha</title>
<figure href="ch21.html#id5344114" id="id5344114">
<title>Figure 21-4. Lit Multisamples</title>
</figure>
<section href="ch21.html#id5344157" id="id5344157">
<title>Minimum Number of Multisamples</title>
</section>
</section>
</section>
<section href="ch21.html#id5344176" id="id5344176">
<title>Reducing CPU Processing Using Textures</title>
</section>
<section href="ch21.html#LE76490-PARENT" id="LE76490-PARENT">
<title>Preprocessing Light Points</title>
<section href="ch21.html#id5344363" id="id5344363">
<title>Stage Configuration Callbacks</title>
<section href="ch21.html#id5344421" id="id5344421">
<title>pfChanTravFunc</title>
</section>
</section>
<section href="ch21.html#id5344512" id="id5344512">
<title>How the Light Point Process Works</title>
<example href="ch21.html#LE31904-PARENT" id="LE31904-PARENT">
<title>Example 21-2. Preprocessing a Display List - Light Point Process code</title>
</example>
</section>
</section>
<section href="ch21.html#LE64405-PARENT" id="LE64405-PARENT">
<title>Calligraphic Light Points</title>
<section href="ch21.html#id5344775" id="id5344775">
<title>Calligraphic Versus Raster Displays</title>
<table href="ch21.html#id5344816" id="id5344816">
<title>Table 21-1. Raster Versus Calligraphic Displays</title>
</table>
<section href="ch21.html#LE87026-PARENT" id="LE87026-PARENT">
<title>Display Modes</title>
</section>
<section href="ch21.html#id5345154" id="id5345154">
<title>Maximum Number of Calligraphic Lights </title>
</section>
</section>
<section href="ch21.html#id5345286" id="id5345286">
<title>LPB Hardware Configuration</title>
<figure href="ch21.html#id5345339" id="id5345339">
<title>Figure 21-5. Calligraphic Hardware Configuration</title>
</figure>
</section>
<section href="ch21.html#id5345537" id="id5345537">
<title>Visibility Information</title>
</section>
<section href="ch21.html#id5345611" id="id5345611">
<title>Required Steps For Using Calligraphic Lights</title>
<section href="ch21.html#id5345774" id="id5345774">
<title>Customizing LPB Initialization</title>
</section>
</section>
<section href="ch21.html#id5345994" id="id5345994">
<title>Accounting for Projector Differences</title>
<section href="ch21.html#id5346029" id="id5346029">
<title>Slew Values</title>
</section>
<section href="ch21.html#id5346200" id="id5346200">
<title>Color Correction</title>
</section>
</section>
<section href="ch21.html#id5346318" id="id5346318">
<title>Callbacks</title>
</section>
<section href="ch21.html#LE44690-PARENT" id="LE44690-PARENT">
<title>Frame to Frame Control</title>
<example href="ch21.html#LE51944-PARENT" id="LE51944-PARENT">
<title>Example 21-3. Setting pfCalligraphic Parameters</title>
</example>
</section>
<section href="ch21.html#LE95703-PARENT" id="LE95703-PARENT">
<title>Significance</title>
</section>
<section href="ch21.html#LE19408-PARENT" id="LE19408-PARENT">
<title>Debunching</title>
</section>
<section href="ch21.html#LE85240-PARENT" id="LE85240-PARENT">
<title>Defocussing Calligraphic Objects</title>
</section>
</section>
<section href="ch21.html#id5346833" id="id5346833">
<title>Using pfCalligraphic Without pfChannel</title>
<section href="ch21.html#id5346944" id="id5346944">
<title>Timing Issues</title>
</section>
<section href="ch21.html#id5347008" id="id5347008">
<title>Light Point Process and Calligraphic</title>
</section>
</section>
<section href="ch21.html#id5347049" id="id5347049">
<title>Debugging Calligrap
hic Lights on Non-Calligraphic Systems</title>
</section>
<section href="ch21.html#id5347092" id="id5347092">
<title>Calligraphic Light Example</title>
<example href="ch21.html#LE41802-PARENT" id="LE41802-PARENT">
<title>Example 21-4. Calligraphic Lights</title>
</example>
</section>
</chapter>
<chapter href="ch22.html" id="LE44131-PARENT">
<title>Chapter 22. Math Routines</title>
<section href="ch22.html#id5347317" id="id5347317">
<title>Vector Operations</title>
<table href="ch22.html#id5347602" id="id5347602">
<title>Table 22-1. Routines 
for 3-Vectors</title>
</table>
</section>
<section href="ch22.html#id5349368" id="id5349368">
<title>Matrix Operations</title>
<table href="ch22.html#id5349492" id="id5349492">
<title>Table 22-2. Routines 
for 4x4 Matrices</title>
</table>
<example href="ch22.html#id5352767" id="id5352767">
<title>Example 22-1. Matrix and Vector Math Examples</title>
</example>
</section>
<section href="ch22.html#id5352778" id="id5352778">
<title>Quaternion Operations</title>
<table href="ch22.html#id5352996" id="id5352996">
<title>Table 22-3. Routine
s for Quaternions</title>
</table>
<example href="ch22.html#id5353800" id="id5353800">
<title>Example 22-2. Quaternion Example</title>
</example>
</section>
<section href="ch22.html#id5353812" id="id5353812">
<title>Matrix Stack Operations</title>
<table href="ch22.html#id5353916" id="id5353916">
<title>Table 22-4. Matrix Stack Routines</title>
</table>
</section>
<section href="ch22.html#id5354504" id="id5354504">
<title>Creating and Transforming Volumes</title>
<section href="ch22.html#id5354732" id="id5354732">
<title>Defining a Volume</title>
<section href="ch22.html#id5354771" id="id5354771">
<title>Spheres</title>
</section>
<section href="ch22.html#id5354880" id="id5354880">
<title>Axially Aligned Boxes</title>
</section>
<section href="ch22.html#id5355034" id="id5355034">
<title>Cylinders</title>
</section>
<section href="ch22.html#id5355172" id="id5355172">
<title>Half-spaces (Planes)</title>
</section>
<section href="ch22.html#id5355284" id="id5355284">
<title>Frusta</title>
</section>
</section>
<section href="ch22.html#id5355398" id="id5355398">
<title>Creating Bounding Volumes</title>
<table href="ch22.html#id5355433" id="id5355433">
<title>Table 22-5. Routines to Create Bounding Volumes</title>
</table>
<table href="ch22.html#id5355785" id="id5355785">
<title>Table 22-6. Routines to Extend Bounding Volumes</title>
</table>
</section>
<section href="ch22.html#id5355960" id="id5355960">
<title>Transforming Bounding Volumes</title>
<table href="ch22.html#id5356073" id="id5356073">
<title>Table 22-7. Routines to Transform Bounding Volumes</title>
</table>
</section>
</section>
<section href="ch22.html#id5356276" id="id5356276">
<title>Intersecting Volumes</title>
<section href="ch22.html#id5356302" id="id5356302">
<title>Point-Volume Intersection Tests</title>
<table href="ch22.html#id5356394" id="id5356394">
<title>Table 22-8. Testing Points for Inclusion in a Bounding Volume</title>
</table>
</section>
<section href="ch22.html#id5356626" id="id5356626">
<title>Volume-Volume Intersection Tests</title>
<table href="ch22.html#id5356712" id="id5356712">
<title>Table 22-9. Testing Volume Intersections</title>
</table>
<table href="ch22.html#id5357142" id="id5357142">
<title>Table 22-10. Intersection Results</title>
</table>
<example href="ch22.html#LE81425-PARENT" id="LE81425-PARENT">
<title>Example 22-3. Quick Sphere Culling Against a Set of Half-Spaces</title>
</example>
</section>
</section>
<section href="ch22.html#id5357434" id="id5357434">
<title>Creating and Working with Line Segments</title>
<section href="ch22.html#id5357729" id="id5357729">
<title>Intersecting with Volumes</title>
<example href="ch22.html#LE95419-PARENT" id="LE95419-PARENT">
<title>Example 22-4. Intersecting a Segment With a Convex Polyhedron</title>
</example>
</section>
<section href="ch22.html#id5358083" id="id5358083">
<title>Intersecting with Planes and Triangles</title>
</section>
<section href="ch22.html#LE31531-PARENT" id="LE31531-PARENT">
<title>Intersecting with pfGeoSets</title>
<table href="ch22.html#id5358511" id="id5358511">
<title>Table 22-11. Available Intersection Tests</title>
</table>
<section href="ch22.html#LE87389-PARENT" id="LE87389-PARENT">
<title>Intersection Masks</title>
</section>
<section href="ch22.html#LE62978-PARENT" id="LE62978-PARENT">
<title>Discriminator Callbacks</title>
<table href="ch22.html#id5359002" id="id5359002">
<title>Table 22-12. Discriminator Return Values</title>
</table>
</section>
</section>
</section>
<section href="ch22.html#id5359278" id="id5359278">
<title>General Math Routine Example Program</title>
<example href="ch22.html#LE70225-PARENT" id="LE70225-PARENT">
<title>Example 22-5. Intersection Routines in Action</title>
</example>
</section>
</chapter>
<chapter href="ch23.html" id="LE47666-PARENT">
<title>Chapter 23. Statistics</title>
<section href="ch23.html#LE69883-PARENT" id="LE69883-PARENT">
<title>Interpreting Statistics Displays</title>
<figure href="ch23.html#id5359919" id="id5359919">
<title>Figure 23-1. Stage Timing Statistics Display </title>
</figure>
<section href="ch23.html#id5359978" id="id5359978">
<title>Status Line</title>
</section>
<section href="ch23.html#id5360047" id="id5360047">
<title>Stage Timing Graph</title>
<figure href="ch23.html#id5360274" id="id5360274">
<title>Figure 23-2. Conceptual Diagram of a Draw-Stage Timing Line</title>
</figure>
</section>
<section href="ch23.html#id5360873" id="id5360873">
<title>Load and 
Stress</title>
</section>
<section href="ch23.html#id5361008" id="id5361008">
<title>CPU Statistics</title>
<section href="ch23.html#id5361192" id="id5361192">
<title>RTMon Statistics (IRIX Only)</title>
<figure href="ch23.html#id5361247" id="id5361247">
<title>Figure 23-3. Other Statistics Classes</title>
</figure>
</section>
</section>
<section href="ch23.html#id5361270" id="id5361270">
<title>Rendering Statistics</title>
</section>
<section href="ch23.html#id5361488" id="id5361488">
<title>Fill Statistics</title>
</section>
</section>
<section href="ch23.html#id5361764" id="id5361764">
<title>Collecting and Accessing Statistics in Your Application</title>
<section href="ch23.html#id5361942" id="id5361942">
<title>Displaying Statistics Simply</title>
</section>
<section href="ch23.html#id5362093" id="id5362093">
<title>Enabling and Disabling Statistics for a Channel</title>
</section>
<section href="ch23.html#id5362140" id="id5362140">
<title>Statistics in libpr and libpf&#8212;pfStats Versus pfFrameStats</title>
<section href="ch23.html#id5362254" id="id5362254">
<title>Statistics Class Structures</title>
</section>
</section>
<section href="ch23.html#id5362440" id="id5362440">
<title>Statistics Rules of Use</title>
<section href="ch23.html#id5362563" id="id5362563">
<title>Statistics Tokens</title>
</section>
<section href="ch23.html#id5362935" id="id5362935">
<title>Statistics Buffers</title>
</section>
</section>
<section href="ch23.html#id5363208" id="id5363208">
<title>Reducing the Cost of Statistics</title>
<section href="ch23.html#id5363219" id="id5363219">
<title>Enabling Only Statistics of Interest</title>
</section>
<section href="ch23.html#id5363306" id="id5363306">
<title>Controlling Update Rate</title>
</section>
</section>
<section href="ch23.html#id5363342" id="id5363342">
<title>Statistics Output</title>
<section href="ch23.html#id5363352" id="id5363352">
<title>Printing</title>
</section>
<section href="ch23.html#id5363431" id="id5363431">
<title>Copying</title>
</section>
<section href="ch23.html#id5363590" id="id5363590">
<title>Querying</title>
</section>
</section>
<section href="ch23.html#id5363766" id="id5363766">
<title>Customizing Displays</title>
</section>
<section href="ch23.html#LE55501-PARENT" id="LE55501-PARENT">
<title>Setting Update Rate</title>
</section>
<section href="ch23.html#id5363823" id="id5363823">
<title>The pfStats Data Structure</title>
</section>
<section href="ch23.html#id5364087" id="id5364087">
<title>Setting Statistics Class Enables and Modes</title>
</section>
</section>
</chapter>
<chapter href="ch24.html" id="LE64183-PARENT">
<title>Chapter 24. Performance Tuning and Debugging</title>
<section href="ch24.html#id5364306" id="id5364306">
<title>Performance Tuning Overview</title>
</section>
<section href="ch24.html#id5364490" id="id5364490">
<title>How OpenGL Performer Helps Performance</title>
<section href="ch24.html#id5364519" id="id5364519">
<title>Draw Stage and Graphics Pipeline Optimizations</title>
</section>
<section href="ch24.html#id5365218" id="id5365218">
<title>Cull and Intersection Optimizations</title>
</section>
<section href="ch24.html#id5365602" id="id5365602">
<title>Application Optimizations</title>
</section>
</section>
<section href="ch24.html#id5365858" id="id5365858">
<title>Specific Guidelines for Optimizing Performance</title>
<section href="ch24.html#id5365909" id="id5365909">
<title>Graphics Pipeline Tuning Tips</title>
<section href="ch24.html#id5365951" id="id5365951">
<title>Host Bottlenecks</title>
</section>
<section href="ch24.html#id5366044" id="id5366044">
<title>Transform Bottlenecks</title>
</section>
<section href="ch24.html#id5366344" id="id5366344">
<title>Fill Bottlenecks</title>
</section>
</section>
<section href="ch24.html#id5366698" id="id5366698">
<title>Process Pipeline Tuning Tips</title>
<section href="ch24.html#id5367258" id="id5367258">
<title>Cull Process Tips</title>
</section>
<section href="ch24.html#id5367396" id="id5367396">
<title>Draw Process Tips</title>
</section>
<section href="ch24.html#LE59086-PARENT" id="LE59086-PARENT">
<title>Efficient Intersection and Traversals</title>
</section>
</section>
<section href="ch24.html#LE40195-PARENT" id="LE40195-PARENT">
<title>Database Concerns</title>
<section href="ch24.html#id5368213" id="id5368213">
<title>libpr Databases</title>
</section>
<section href="ch24.html#id5368370" id="id5368370">
<title>libpf Databases</title>
</section>
<section href="ch24.html#LE31774-PARENT" id="LE31774-PARENT">
<title>Balancing Cull and Draw Processing with Database Hierarchy</title>
</section>
<section href="ch24.html#id5368975" id="id5368975">
<title>Graphics and Modeling Techniques to Improve Performances</title>
</section>
</section>
<section href="ch24.html#id5369322" id="id5369322">
<title>Special Coding Tips</title>
</section>
</section>
<section href="ch24.html#LE82953-PARENT" id="LE82953-PARENT">
<title>Performance Measurement Tools</title>
<section href="ch24.html#id5369778" id="id5369778">
<title>Using pixie, prof, and gprof to Measure Performance</title>
</section>
<section href="ch24.html#id5370193" id="id5370193">
<title>Using ogldebug to Observe Graphics Calls</title>
</section>
</section>
<section href="ch24.html#LE68076-PARENT" id="LE68076-PARENT">
<title>Guidelines for Debugging</title>
<section href="ch24.html#LE31591-PARENT" id="LE31591-PARENT">
<title>Shared Memory</title>
</section>
<section href="ch24.html#id5370755" id="id5370755">
<title>Use the Simplest Process Model</title>
</section>
<section href="ch24.html#id5370976" id="id5370976">
<title>Avoid Floating-Point Exceptions</title>
</section>
<section href="ch24.html#id5371077" id="id5371077">
<title>When the Debugger Will Not Give You a Stack Trace</title>
</section>
<section href="ch24.html#id5371221" id="id5371221">
<title>Tracing Members of OpenGL Performer Objects</title>
</section>
</section>
<section href="ch24.html#LE76574-PARENT" id="LE76574-PARENT">
<title>Memory Corruption and Leaks</title>
<section href="ch24.html#id5371412" id="id5371412">
<title>Purify</title>
</section>
<section href="ch24.html#id5371535" id="id5371535">
<title>libdmalloc (IRIX only)</title>
</section>
</section>
<section href="ch24.html#LE84395-PARENT" id="LE84395-PARENT">
<title>Notes on Tuning for RealityEngine Graphics</title>
<section href="ch24.html#LE22606-PARENT" id="LE22606-PARENT">
<title>Multisampling</title>
</section>
<section href="ch24.html#id5371919" id="id5371919">
<title>Transparency</title>
</section>
<section href="ch24.html#id5372056" id="id5372056">
<title>Texturing</title>
</section>
<section href="ch24.html#id5372165" id="id5372165">
<title>Other Tips</title>
</section>
</section>
<section href="ch24.html#id5372228" id="id5372228">
<title>EventView&#8212;A Performance Analyzer</title>
<section href="ch24.html#LE10288-PARENT" id="LE10288-PARENT">
<title>Viewing Events&#8212;evanalyzer</title>
<figure href="ch24.html#id5372433" id="id5372433">
<title>Figure 24-1. The evanalyzer Main Display</title>
</figure>
</section>
<section href="ch24.html#LE36664-PARENT" id="LE36664-PARENT">
<title>Controlling the Collection of OpenGL Performer Internal Events</title>
</section>
<section href="ch24.html#LE34965-PARENT" id="LE34965-PARENT">
<title>Sample Use of EventView</title>
<section href="ch24.html#id5372811" id="id5372811">
<title>The Simplest Case</title>
</section>
<section href="ch24.html#id5372846" id="id5372846">
<title>A More Complex Case</title>
<figure href="ch24.html#id5373009" id="id5373009">
<title>Figure 24-2. User Event myDrawCB</title>
</figure>
</section>
</section>
<section href="ch24.html#LE36916-PARENT" id="LE36916-PARENT">
<title>Using EventView Tools</title>
<section href="ch24.html#id5373243" id="id5373243">
<title>evpp&#8212;Event Pre-Processor</title>
</section>
<section href="ch24.html#id5373730" id="id5373730">
<title>evanalyzer&#8212;EventView Graphical Analysis Program</title>
<figure href="ch24.html#id5373762" id="id5373762">
<title>Figure 24-3. Up-Close View of a Single Event</title>
</figure>
</section>
<section href="ch24.html#id5373975" id="id5373975">
<title>evhist&#8212;Histogram Generator</title>
<figure href="ch24.html#id5374032" id="id5374032">
<title>Figure 24-4. evhist Sample Screen</title>
</figure>
</section>
<section href="ch24.html#id5374149" id="id5374149">
<title>evgraph&#8212;Event Information Plotter</title>
<figure href="ch24.html#id5374179" id="id5374179">
<title>Figure 24-5. evgraph Sample Screen</title>
</figure>
</section>
</section>
<section href="ch24.html#LE29801-PARENT" id="LE29801-PARENT">
<title>Understanding OpenGL Performer Internal Events</title>
<section href="ch24.html#id5374342" id="id5374342">
<title>pfSync() Events</title>
</section>
<section href="ch24.html#id5374425" id="id5374425">
<title>pfFrame Events</title>
</section>
<section href="ch24.html#id5374490" id="id5374490">
<title>CULL Process Events</title>
</section>
<section href="ch24.html#id5374507" id="id5374507">
<title>DRAW Process Events</title>
</section>
<section href="ch24.html#id5374538" id="id5374538">
<title>Other Events</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch25.html" id="LE18200-PARENT">
<title>Chapter 25. Building a Visual Simulation Application Using libpfv</title>
<section href="ch25.html#LE24127-PARENT" id="LE24127-PARENT">
<title>Overview</title>
</section>
<section href="ch25.html#LE32334-PARENT" id="LE32334-PARENT">
<title>The Simplest pfvViewer Program</title>
</section>
<section href="ch25.html#LE14996-PARENT" id="LE14996-PARENT">
<title>Adding Interaction to a pfvViewer Program</title>
</section>
<section href="ch25.html#LE26138-PARENT" id="LE26138-PARENT">
<title>Reading XML Configuration Files</title>
</section>
<section href="ch25.html#LE16445-PARENT" id="LE16445-PARENT">
<title>Module Scoping, Multiple Worlds and Multiple Views</title>
</section>
<section href="ch25.html#LE41867-PARENT" id="LE41867-PARENT">
<title>Extending a pfvViewer&#8212;Writing Custom Modules</title>
</section>
<section href="ch25.html#LE38465-PARENT" id="LE38465-PARENT">
<title>Extending a pfvViewer&#8212;Module Entry Points</title>
</section>
<section href="ch25.html#LE35452-PARENT" id="LE35452-PARENT">
<title>Picking, Selection, and Interaction</title>
</section>
<section href="ch25.html#LE25298-PARENT" id="LE25298-PARENT">
<title>More Sample Programs, Configuration Files, and Source Code</title>
</section>
</chapter>
<chapter href="ch26.html" id="LE19121-PARENT">
<title>Chapter 26. Programming with C++</title>
<section href="ch26.html#id5377287" id="id5377287">
<title>Overview</title>
<table href="ch26.html#id5377506" id="id5377506">
<title>Table 26-1. Corresponding Routines in the C and C++ API</title>
</table>
</section>
<section href="ch26.html#id5377688" id="id5377688">
<title>Class Taxonomy </title>
<section href="ch26.html#id5377793" id="id5377793">
<title>Public Structs</title>
</section>
<section href="ch26.html#id5377820" id="id5377820">
<title>
libpr Classes</title>
</section>
<section href="ch26.html#id5377896" id="id5377896">
<title>libpf Classes</title>
</section>
<section href="ch26.html#id5377912" id="id5377912">
<title>pfType Class</title>
</section>
</section>
<section href="ch26.html#id5377937" id="id5377937">
<title>Programming Basics</title>
<section href="ch26.html#id5377942" id="id5377942">
<title>Header Files</title>
<table href="ch26.html#id5378013" id="id5378013">
<title>Table 26-2. Header Files for libpf Scene Graph Node Classes</title>
</table>
<table href="ch26.html#id5378873" id="id5378873">
<title>Table 26-3. Header Files for Other libpf Classes</title>
</table>
<table href="ch26.html#id5379490" id="id5379490">
<title>Table 26-4. Header Files for libpr Graphics Classes</title>
</table>
<table href="ch26.html#id5380342" id="id5380342">
<title>Table 26-5. Header Files for Other libpr Classes</title>
</table>
</section>
<section href="ch26.html#LE65947-PARENT" id="LE65947-PARENT">
<title>Creating and Deleting OpenGL Performer Objects</title>
<example href="ch26.html#id5381574" id="id5381574">
<title>Example 26-1. Valid Creation of Objects in C++</title>
</example>
<example href="ch26.html#LE51323-PARENT" id="LE51323-PARENT">
<title>Example 26-2. Invalid Creation of Objects in C++</title>
</example>
</section>
<section href="ch26.html#id5381682" id="id5381682">
<title>Invoking Methods on OpenGL Performer Objects</title>
</section>
<section href="ch26.html#id5381702" id="id5381702">
<title>Passing Vectors and Matrices to Other Libraries</title>
</section>
</section>
<section href="ch26.html#id5381736" id="id5381736">
<title>Porting from C API to C++ API</title>
<section href="ch26.html#id5381876" id="id5381876">
<title>Typedefed Arrays Versus Structs</title>
</section>
<section href="ch26.html#id5381950" id="id5381950">
<title>Interface Between C and C++ API Code</title>
</section>
</section>
<section href="ch26.html#id5382153" id="id5382153">
<title>Subclassing pfObjects</title>
<section href="ch26.html#id5382302" id="id5382302">
<title>Initialization and Type Definition</title>
<table href="ch26.html#id5382330" id="id5382330">
<title>Table 26-6.  Data and Functions Provided by User Subclasses</title>
</table>
<example href="ch26.html#id5382559" id="id5382559">
<title>Example 26-3. Class Definition for a Subclass of pfDCS</title>
</example>
</section>
<section href="ch26.html#id5382593" id="id5382593">
<title>Defining Virtual Functions</title>
<example href="ch26.html#id5382644" id="id5382644">
<title>Example 26-4. Overloading the libpf Application Traversal</title>
</example>
</section>
<section href="ch26.html#id5382726" id="id5382726">
<title>Accessing Parent Class Data Members</title>
</section>
</section>
<section href="ch26.html#id5382740" id="id5382740">
<title>Multiprocessing and Shared Memory		</title>
<section href="ch26.html#id5382752" id="id5382752">
<title>Initializing Shared Memory</title>
<section href="ch26.html#id5383137" id="id5383137">
<title>More on Shared Memory and the Type System </title>
</section>
<section href="ch26.html#id5383213" id="id5383213">
<title>Virtual Address Spaces and Virtual Functions</title>
</section>
</section>
<section href="ch26.html#id5383300" id="id5383300">
<title>Data Members and Shared Memory</title>
<section href="ch26.html#id5383305" id="id5383305">
<title>Non-static Member Data</title>
</section>
<section href="ch26.html#id5383338" id="id5383338">
<title>Static Member Data</title>
<example href="ch26.html#id5383394" id="id5383394">
<title>Example 26-5. Changeable Static Data Member</title>
</example>
</section>
</section>
<section href="ch26.html#LE10197-PARENT" id="LE10197-PARENT">
<title>Multiprocessing and libpf Objects</title>
</section>
</section>
<section href="ch26.html#id5383579" id="id5383579">
<title>Performance Hints</title>
<section href="ch26.html#id5383584" id="id5383584">
<title>Constructor Overhead</title>
</section>
<section href="ch26.html#id5383600" id="id5383600">
<title>Math Operators</title>
</section>
</section>
</chapter>
<glossary href="go01.html" id="id5383635">
<title>Glossary</title>
</glossary>
<index href="ix01.html" id="sgi-index">
<title>Index</title>
</index>
</book>
</toc>
