Index

3D Studio
Loading a Scene Graph

64-bit compilation
MIPS-3, MIPS-4, and 64-Bit Compilation

active database
animation sequences
Animation Sequences
as programming language
Survey of Visual Simulation Techniques
billboards
Billboard Objects
level of detail
Level of Detail Selection
skeleton
Skeleton Animation
total animation
Total Animation

Active Surface Definition
Special Features (pfEarthSky, pfSequence, pfASD)

Advanced Graphics Applications
Image Gallery
Image Gallery

Alias|Wavefront
Loading a Scene Graph

alpha
Specifying the Material

alpha function mode
pfAlphaFunc

ambient
Specifying the Material

animation
Character Animation
characters
Generalized Morphing
sequences
Animation Sequences
skeleton
Skeleton Animation
total
Total Animation

antialiase
Antialiasing

antialiasing
Antialiasing

APP
Pipelined Traversals

application areas
broadcast video
What Is OpenGL Performer?
driver training
OpenGL Performer Applications
entertainment
What Is OpenGL Performer?
flight simulation
OpenGL Performer Applications
virtual reality
What Is OpenGL Performer?
Why Use OpenGL Performer?
OpenGL Performer Applications
virtual sets
Why Use OpenGL Performer?
visual simulation
What Is OpenGL Performer?
Why Use OpenGL Performer?

application development tools
OpenGL Performer Applications

arena
Glossary

array, indexed
Indexed Arr ays

atmospheric model
Special Features (pfEarthSky, pfSequence, pfASD)

attribute
setting
Setting the Attributes
setting pfGeoState's
Setting pfGeoState Attributes
stripped
Attributes of pfGeoSet Primitives
when to index
Indexed Arr ays

attribute array
Setting the Attributes

attribute binding
pfGeoSet Overview
Attribute Bindings

attribute, node
Node Attributes

attributes
array
Attributes of pfGeoSet Primitives
pfGeoState
Setting pfGeoState Attributes

automatic type casting
Base Clas ses

base classes
Base Clas ses

billboard
Billboard Objects
Glossary

bins
Antialiasing

bounding volume
Node Attributes

broadcast video
What Is OpenGL Performer?

C code examples
Conventions

C++
Using OpenGL Performer From C++

C++ code examples
Conventions

callback function, passing data to traversal callback
Passing Data to Traversal Callback Functions

callback, node
Setting Up Node Callbacks

callback, return values for traversal
Return Values for Traversal Callback Functions

casting
Using OpenGL Performer Header Files

channel
Glossary

"Channel Callbacks" on page 83
Creating a Display with pfChannel

channels
setting up
Setting Up a Channel

character animation
Character Animation
Character Animation

child node
Adding Nodes in a Scene Graph

circular references. See references, circular
Multiprocessing Framework

class inheritance
Base Clas ses
Base Clas ses

classes
libpf
pfBillboard
Billboard Objects
pfEarthSky
Special Features (pfEarthSky, pfSequence, pfASD)
pfLightSource
Projective Texture
libpfv
pfvInteractor
Picking, Selection, and Interaction
pfvPicker
Picking, Selection, and Interaction
pfvSelector
Picking, Selection, and Interaction
pfvViewer
libpfv—A Graphical Viewer Library
Overview
libpr
pfDispList
Display Lists
pfGeoArray
High-Performance Geometry Rendering
pfGeoSet
High-Performance Geometry Rendering
pfGeoState
Graphics State Encapsulation
pfState
Efficient Graphics State Management

clearing the screen
Special Features (pfEarthSky, pfSequence, pfASD)

clip texture
Glossary

cloning
Visual Database (pfScene)

color
Specifying the Color and Shininess

color mode
Color Mode

color tables
Color Tables (pfColortable)

common shapes
Creating Common Geometric Objects

compiler flags
Using Compiler Flags

compiling OpenGL Performer applications
Compiling and Linking OpenGL Performer Applications

cone
Creating Common Geometric Objects

configuration file
Reading XML Configuration Files

configuration files
More Sample Programs, Configuration Files, and Source Code

configuring OpenGL Performer
Initializing Processes

configuring OpenGL Performer. See pfConfig()
Overview

conventions
typographical
Conventions

coordinates
texture
Setting the Texture Coordinates

copying pfObjects
Copying Objects with pfCopy()

Coryphaeus
Loading a Scene Graph
Designer's Workbench
Library Structure of OpenGL Performer
DWB format
Loading Databases into OpenGL Performer

counter, video
High-Resolution and Video-Rate Clocks (pfGetTime,)

csBillboard
Rendering Slices of Shapes

csLOD
Level of Detail Reduced for Performance
transition between child nodes
Transitioning Between Levels of Detail

cube
Creating Common Geometric Objects

CULL
Pipelined Traversals
Face Culling
Glossary
sides of geometries
Face Culling

culling
More Controls

cylinder
Creating Common Geometric Objects

DAG. See directed acyclic graph
Visual Database (pfScene)

data files
Overview

database builder
Database Builder

database construction
 libpfdu—Geometry Builder Library
Survey of Visual Simulation Techniques

databases
Database Construction
creating
Creating a Database
importing
Library Structure of OpenGL Performer

databases, as programming languages
Survey of Visual Simulation Techniques

DBASE
Pipelined Traversals

decal
pfDecal

deleting objects
pfDelete() and Reference Counting

deletion
Visual Database (pfScene)

demonstration programs
Conventions

Design Vision, Inc.
Image Gallery

Designer's Workbench
Library Structure of OpenGL Performer

Diamond, A. J.
Image Gallery
Image Gallery
Image Gallery
Image Gallery

diffuse
Specifying the Material

Digital Architecture
Image Gallery

directed acyclic graph
Visual Database (pfScene)

display list
GL display list usage
Display Lists
OpenGL Performer internal
Display Lists
optimizing performance
Using Display Lists

DLL (dynamic link library). See also DSO.
Library Structure of OpenGL Performer

Donald Schmitt and Company
Image Gallery
Image Gallery

DRAW
Pipelined Traversals

drive motion model
Starting and Quitting Perfly

driver training
OpenGL Performer Applications

DSO (dynamic shared object)
Library Structure of OpenGL Performer
Glossary
compiling and linking
Dynamic Shared Objects (DSOs)
libpf
Library Structure of OpenGL Performer
libpfdu
Library Structure of OpenGL Performer
libpfmpk
Library Structure of OpenGL Performer
libpfui
Library Structure of OpenGL Performer
libpfutil
Library Structure of OpenGL Performer
libpfv
Library Structure of OpenGL Performer
libpr
Library Structure of OpenGL Performer

DVR (Dynamic Video Resolution)
Dynamic Video Resolution
Maintaining Frame Rate Using D VR

dynamic link library (DLL). See also DSO.
Library Structure of OpenGL Performer
Glossary

dynamic shared object (DSO). See DSO.
Library Structure of OpenGL Performer

Dynamic Video Resolution, see DVR
Maintaining Frame Rate Using D VR

emissive
Specifying the Material

entertainment
What Is OpenGL Performer?

enterView()
 Extending a pfvViewer—Module Entry Points

enterWorld()
 Extending a pfvViewer—Module Entry Points

environment
texture
Setting the Texture Environment

environment mapping
Environment Mapping

environment model
Special Features (pfEarthSky, pfSequence, pfASD)

environment variables
PFPATH
Setting the Search Path for Database Files

environmental effects
More Controls

example code
The pfWindow Windowing Functions
Overview

examples
simple.c
Overview

exitView()
 Extending a pfvViewer—Module Entry Points

exitWorld()
 Extending a pfvViewer—Module Entry Points

extensibility
user data
User Data

faces, simulating
Generalized Morphing

field of view (FOV)
Overview

file formats, scene graphs
Loading a Scene Graph

flags, compiler
Using Compiler Flags

flattening
Visual Database (pfScene)

flight motion model
Flying

flight simulation
OpenGL Performer Applications

fog
More Controls

format
texture
Specifying Texture Formats

fractal geometry
 libpfdu—Geometry Builder Library

frame rates
Survey of Visual Simulation Techniques

frame()
 Extending a pfvViewer—Module Entry Points

frames
rate
Frame Rate and Synchronization

free-store management
pfDelete() and Reference Counting

Friends of Performer
Database Construction

frustum
Glossary

functions (See routines.)
 Extending a pfvViewer—Module Entry Points

geometric shapes, large
Utilities to Create Common Geometric Objects

geometry
Visual Database (pfScene)
definition, pfGeoSet
High-Performance Geometry Rendering
placing in a scene
Placing Geometry in a Scene
placing in a scene graph
Placing Geometry in a Scene Graph
rendering state, pfGeoState
Graphics State Encapsulation

geometry movie
Animation Sequences

getting started
About This Guide

gift software
Conventions

global graphics state
Global State

graph
directed acyclic
Visual Database (pfScene)

graphic states, modal
Setting Modal pfGeoState Values

graphical user interface (GUI)
Basic Perfly Controls

graphics libraries
OpenGL
About This Guide

graphics library
overview
Overview of the OpenGL Performer Library Structure

graphics state
Efficient Graphics State Management

ground
Special Features (pfEarthSky, pfSequence, pfASD)

group node
Scene Graph Nodes
Group Nodes
Scene Graph Traversals

GUI
Basic Perfly Controls

handleEvent()
Extending a pfvViewer—Writing Custom Modules
 Extending a pfvViewer—Module Entry Points

header file
Header Files

header files
Using OpenGL Performer Header Files

heap
Glossary

help
64-bit compilation
MIPS-3, MIPS-4, and 64-Bit Compilation
accessing the mailing list
Internet and Hardcopy Reading for the OpenGL Performer Series
compiling and linking
Compiling and Linking OpenGL Performer Applications
constant frame rates
Consistent Frame Rates
finding files
Setting the Search Path for Database Files
Friends of Performer
Database Construction
getting started
Part One: Overview of OpenGL Performer
Getting Acquainted with OpenGL Performer
initializing OpenGL Performer
Initializing and Configuring OpenGL Performer
IRIX 6.2 issues
MIPS-3, MIPS-4, and 64-Bit Compilation
life-like character animation
Character Animation
main simulation loop
Simulation Loop
overview of chapter contents
What This Guide Contains
sample code
Locations of Perfly and Example Source Code
sample programs explained
Overview
using the C++ API
Using OpenGL Performer From C++
where to start
About This Guide

help compiler flags
Using Compiler Flags

Henke, Joe
Image Gallery

high-resolution clocks
High-Resolution and Video-Rate Clocks (pfGetTime,)

image computation rate
Frame Rate and Synchronization

immediate mode
Setting the Graphics State

include files
Using OpenGL Performer Header Files

indexed arrays
Indexed Arr ays

info-performer
Internet and Hardcopy Reading for the OpenGL Performer Series

inheriting
classes
Base Clas ses

initializing
multiprocessing
Initializing Processes
OpenGLPerformer. See pfInit()
Overview
shared memory
Initializing Shared Memory

inst images
performer_eoe
Dynamic Shared Objects (DSOs)

installing OpenGL Performer
Installing the Software

instancing
The Use of Instances

intersections
Visual Database (pfScene)

Inventor
Loading a Scene Graph

IRIS IM
X and IRIS IM

ISECT
Pipelined Traversals

latency
Low-Latency Image Generation
total
Low-Latency Image Generation
transport delay
Low-Latency Image Generation
visual
Low-Latency Image Generation

layering, internal software structure
Library Structure of OpenGL Performer

leaf node
Scene Graph Nodes
Leaf Nodes
Scene Graph Traversals

level of detail
Level of Detail Selection

level of detail (LOD)
Level of Detail Selection

level of detail (LOD),
Level of Detail Reduced for Performance

libpf library
Library Structure of OpenGL Performer
Visual Simulation Application Library (libpf)
libpf—Visual Simulation Library
Libpr and Libpf Objects
Glossary

libpfdb library
Library Structure of OpenGL Performer

libpfdu library
Library Structure of OpenGL Performer
Geometry Builder Library (libpfdu)
 libpfdu—Geometry Builder Library
Database Builder
Glossary

libpfmpk library
Library Structure of OpenGL Performer
libpfmpk—A Configuration-Import Library

libpfui library
Library Structure of OpenGL Performer
User Interface Library (libpfui)

libpfutil library
Library Structure of OpenGL Performer
Utility Library (libpfutil)

libpfv library
Library Structure of OpenGL Performer
libpfv—A Graphical Viewer Library
Building a Visual Simulation Application Using libpfv

libpr library
Library Structure of OpenGL Performer
High-Performance Rendering Library (libpr)
 libpr—High-Performance Rendering Library
Libpr and Libpf Objects
Glossary

libraries
libpf
Library Structure of OpenGL Performer
Visual Simulation Application Library (libpf)
libpf—Visual Simulation Library
Libpr and Libpf Objects
Glossary
libpfdb
Library Structure of OpenGL Performer
libpfdu
Library Structure of OpenGL Performer
Geometry Builder Library (libpfdu)
 libpfdu—Geometry Builder Library
Database Builder
Glossary
libpfmpk
Library Structure of OpenGL Performer
libpfmpk—A Configuration-Import Library
libpfui
Library Structure of OpenGL Performer
User Interface Library (libpfui)
libpfutil
Library Structure of OpenGL Performer
Utility Library (libpfutil)
libpfv
Library Structure of OpenGL Performer
libpfv—A Graphical Viewer Library
Building a Visual Simulation Application Using libpfv
libpr
Library Structure of OpenGL Performer
High-Performance Rendering Library (libpr)
 libpr—High-Performance Rendering Library
Libpr and Libpf Objects
Glossary

lighting
Specifying the Material
Material Side
Specifying Lighting
Specifying Lighting
Specifying Lighting

Lightscape
Loading a Scene Graph

Lightscape Technologies
Image Gallery

linear algebra
Math Support

link libraries
Library Structure of OpenGL Performer

linking OpenGL Performer applications
Compiling and Linking OpenGL Performer Applications

load
Glossary

load management
Frame Control

local space
World Space

magic carpet
Going Beyond Visual Simulation

mailing list
Internet and Hardcopy Reading for the OpenGL Performer Series

material
Specifying the Material

material side
Material Side

math functions
Math Support

Medit Productions
Medit format
Loading Databases into OpenGL Performer
Medit modeler
Library Structure of OpenGL Performer

Menger sponge
 libpfdu—Geometry Builder Library

methods (See routines.)
 Extending a pfvViewer—Module Entry Points

model view
Glossary

models
Database Construction
Overview

morphing
characters
Generalized Morphing
terrain
Morphing

motion models
drive
Starting and Quitting Perfly
flight
Flying

motion sickness. See simulator sickness
Low-Latency Image Generation

Multigen
Loading a Scene Graph

MultiGen OpenFlight format
Loading Databases into OpenGL Performer

multiple inheritance
avoidance of
Inheritance Graph

multiprocessing
initializing
Initializing Processes

Nagaoka, Isao
Image Gallery

node
What Is a Node?
What Is a Node?
Glossary
adding
Adding Nodes in a Scene Graph
arrangement
Arrangement of Nodes
attributes
Node Attributes
fields
What Is a Node?
group
Scene Graph Nodes
Scene Graph Nodes
leaf
Scene Graph Nodes
removing
Removing Nodes from a Scene Graph

node callback
Setting Up Node Callbacks

nodes
overview
Visual Database (pfScene)
overview,
Visual Database (pfScene)

object creation
O bject Creation

object derivation
Base Clas ses

object space
Glossary

object type
Determining Ob ject Type

object type, determining
Determining Ob ject Type

Open GL
porting from
Porting from IRIS GL to OpenGL

OpenGL
About This Guide
porting to
Porting from IRIS GL to OpenGL

OpenGL Multipipe SDK product
Library Structure of OpenGL Performer
libpfmpk—A Configuration-Import Library

OpenGL Performer
and C++
Using OpenGL Performer From C++
applications
compiling and linking
Compiling and Linking OpenGL Performer Applications
setting up
Overview
structure of
Overview
features
Library Features
file format
Loading a Scene Graph
getting started
What This Guide Contains
initializing
See pfInit()
Overview
installing
Installing the Software
introduction
About This Guide
libraries
Library Structure of OpenGL Performer
Overview of the OpenGL Performer Library Structure
mailing list
Internet and Hardcopy Reading for the OpenGL Performer Series
release notes
Installing the Software
sample programs
Part One: Overview of OpenGL Performer
Getting Acquainted with OpenGL Performer
type system
Determining Ob ject Type
why use OpenGL Performer
Why Use OpenGL Performer?

OpenGL Performer API
General Naming Conventions

optimizing
billboards
Rendering Slices of Shapes
culling
Face Culling
geometry
Optimizing Geometry Performance
graphics state
Optimizing Graphics State Changes
Optimizing Graphics State Changes
performance
Optimizing Performance

ordered rendering
Antialiasing

overlay()
 Extending a pfvViewer—Module Entry Points

packed attribute
Packed Attributes

paths
search paths
Setting the Search Path for Database Files
through a simulated scene
Motion Using Paths

Perfly
Part One: Overview of OpenGL Performer
Getting Acquainted with OpenGL Performer
Exploring the OpenGL Performer Sample Scenes with Perfly
Glossary
demo program
Exploring the OpenGL Performer Sample Scenes with Perfly
Exploring the OpenGL Performer Sample Scenes with Perfly

performance
Performance

Performer. See OpenGL Performer
Using OpenGL Performer From C++

pfAddGSet
Placing Geometry in a Scene Graph

pfAddGSet()
pfDelete() and Reference Counting

PFAF_ALWAYS
Alpha Func Modes

PFAF_EQUAL
Alpha Func Modes

PFAF_GEQUAL
Alpha Func Modes

PFAF_GREATER
Alpha Func Modes

PFAF_LEQUAL
Alpha Func Modes

PFAF_LESS
Alpha Func Modes

PFAF_NEVER
Alpha Func Modes

PFAF_NOTEQUAL
Alpha Func Modes

PFAF_OFF
Alpha Func Modes

pfAlphaFunc
pfAlphaFunc

pfApplyGState
Setting the Graphics State
Global State

pfApplyMtl
Setting the Graphics State

pfASD
Leaf Nodes

pfAsyncDelete()
Cleaning Up the Cache

PFB file format
Optimizing File Loading

pfBillboard
Leaf Nodes

pfChanPick()
Intersection Testing

pfConfig()
 Extending a pfvViewer—Module Entry Points

pfconv
pfconv

pfCull()
 Extending a pfvViewer—Module Entry Points

pfCylAroundSegs()
The pfSegSet Bound

pfdBuilder
 libpfdu—Geometry Builder Library

pfDCS
OpenGL Performer Group Nodes

pfDecal
pfDecal

PFDECAL_BASE
pfDecal

PFDECAL_BASE_DISPLACE
pfDecal
pfDecal

PFDECAL_BASE_FAST
pfDecal

PFDECAL_BASE_HIGH_QUALITY
pfDecal

PFDECAL_BASE_STENCIL
pfDecal

PFDECAL_LAYER
pfDecal

PFDECAL_LAYER_DISPLACE
pfDecal

PFDECAL_LAYER_DISPLACE_AWAY
pfDecal

PFDECAL_LAYER_FAST
pfDecal

PFDECAL_LAYER_HIGH_QUALITY
pfDecal

PFDECAL_LAYER_STENCIL
pfDecal

PFDECAL_OFF
pfDecal

PFDECAL_PLANE
pfDecal

pfdLoadFile
Loading a Scene Graph
Loading a Scene Graph

pfdLoadFile()
Finding Scene Graph Files

pfdMakeShared()
Optimizing Graphics State Changes

pfdMakeSharedScene()
Optimizing Graphics State Changes

pfdMergeGraph()
Using the Scene Graph Optimizer

pfDraw()
 Extending a pfvViewer—Module Entry Points

pfdSpatializeGraph()
Using the Scene Graph Optimizer

pfdStoreFile
Saving a Scene Graph

pfdStripGraph()
Using the Scene Graph Optimizer

pfEnable
Setting the Graphics State

pfFilePath()
Finding Scene Graph Files
Loading an Image as a Texture
Setting the Search Path for Database Files

pfFilePathv()
Finding Scene Graph Files
Setting the Search Path for Database Files

pfFindFile()
Setting the Search Path for Database Files

pfFrame()
Simulation Loop
 Extending a pfvViewer—Module Entry Points

pfGeoArray
Creating Geometry with pfGeoSets
Using the Scene Graph Optimizer

pfGeode
Leaf Nodes

pfGeoSet
Creating Geometry with pfGeoSets
pfGeoSet Overview
Using the Scene Graph Optimizer
contains
pfGeoSet Overview
creating
Creating a pfGeoSet
drawing and printing
Drawing and Printing a pfGeoSet
example
pfGeoSet Overview
placing in a scene graph
Placing Geometry in a Scene Graph
utilities to create large geometric chapes
Utilities to Create Common Geometric Objects

pfGeoSet data structures
adding to pfGeode nodes
pfDelete() and Reference Counting

pfGeoState
Creating Geometry with pfGeoSets
defining
Defining a pfGeoState

pfGetTravNode
Setting Up Node Callbacks

PFGS_FLAT_LINESTRIPS
Setting the Primitive Type

PFGS_FLAT_TRIFANS
Setting the Primitive Type

PFGS_FLAT_TRISTRIPS
Setting the Primitive Type

PFGS_LINES
Setting the Primitive Type

PFGS_LINESTRIPS
Setting the Primitive Type

PFGS_OVERALL
pfGeoSet Overview

PFGS_PER_PRIM
pfGeoSet Overview

PFGS_PER_VERTEX
pfGeoSet Overview
Setting the Texture Coordinates

PFGS_POINTS
Setting the Primitive Type

PFGS_POLYS
Setting the Primitive Type

PFGS_QUADS
Setting the Primitive Type

PFGS_TEXCOORD2
Setting the Texture Coordinates

PFGS_TRIFANS
Setting the Primitive Type

PFGS_TRIS
Setting the Primitive Type

PFGS_TRISTRIPS
Setting the Primitive Type

pfGSetAttr
pfGeoSet Overview

pfGSetAttr()
pfDelete() and Reference Counting
Setting the Texture Coordinates

pfGSetGstate
Placing Geometry in a Scene Graph

pfGSetGState()
pfDelete() and Reference Counting

pfGSetHlight()
pfDelete() and Reference Counting

pfGSetPrimLengths
pfGeoSet Overview
Setting the Number of Vertices Per Stripped Primitive

pfGStateAttr
Global State

pfGStateAttr()
pfDelete() and Reference Counting

pfGStateMode
Global State

pfGStateVal
Global State

pf.h header file
Using OpenGL Performer Header Files

PFI image format
Optimizing File Loading

pficonv
pficonv

pfInitGfx
Setti ng Up a Pipe

pfInitGfx()
Setti ng Up a Pipe

pfInsertGSet()
pfDelete() and Reference Counting

pfIsectFunc()
Creating an ISECT Process

pfIsectNodeSegs()
Constructing a Segment Set for pfNodeIsectSegs()

pfLayer
OpenGL Performer Group Nodes

pfLightColor
Specifying Lighting

pfLights
Specifying Lighting
Specifying Lighting

pfLightSource
Leaf Nodes

pfLigthSource
Specifying Lighting

pfLModelAmbient
Specifying Lighting

pfLoadGState
Global State

pfLoadTexFile()
Loading an Image as a Texture
Specifying Texture Attribute

pfLOD
OpenGL Performer Group Nodes

PFLT_AMBIENT
Specifying Lighting

PFLT_DIFFUSE
Specifying Lighting

PFLT_SPECULAR
Specifying Lighting

pfMalloc()
Copying Objects with pfCopy()

pfMergeBuffer()
Cleaning Up the Cache

PFMTL_AMBIENT
Specifying the Color and Shininess

PFMTL_BACK
Material Side

PFMTL_BOTH
Material Side

PFMTL_DIFFUSE
Specifying the Color and Shininess

PFMTL_EMISSION
Specifying the Color and Shininess

PFMTL_FRONT
Material Side

PFMTL_SPECULAR
Specifying the Color and Shininess

pfMtlSide
Material Side

pfMultiprocess()
Creating an ISECT Process

pfNewGSet
Placing Geometry in a Scene Graph

pfNodeTravMask()
Intersection Masks

pfObject data structures
Base Clas ses
actual type of
Determining Ob ject Type

pfPartition
OpenGL Performer Group Nodes

PFPATH environment variable
Setting the Search Path for Database Files

pfPrint
Printing Objec ts with pfPrint()
Printing Objec ts with pfPrint()
Printing Objec ts with pfPrint()

pfPVChanDVRMode()
Maintaining Frame Rate Using D VR

pfQueryHit()
Testing for Valid Information

pfReplaceGSet()
pfDelete() and Reference Counting

pfScene
OpenGL Performer Group Nodes

pfSCS
OpenGL Performer Group Nodes

pfSequence
OpenGL Performer Group Nodes

pfStageConfigFunc()
Setti ng Up a Pipe
Setti ng Up a Pipe

pfState
pfGeoStates and pfGeoSets
Specifying the Appearance of Geometry with pfState and pfGeoState

PFSTATE_ALPHAFUNC
Alpha Func Modes

PFSTATE_BACKMTL
Setting pfGeoState Attributes

PFSTATE_COLORTABLE
Setting pfGeoState Attributes

PFSTATE_DECALPLANE
Setting pfGeoState Attributes

PFSTATE_FOG
Setting pfGeoState Attributes

PFSTATE_FRONTMTL
Setting pfGeoState Attributes

PFSTATE_HIGHLIGHT
Setting pfGeoState Attributes

PFSTATE_LIGHTMODEL
Setting pfGeoState Attributes

PFSTATE_LIGHTS
Setting pfGeoState Attributes
Specifying Lighting

PFSTATE_LPOINTSTATE
Setting pfGeoState Attributes

PFSTATE_TEXENV
Setting pfGeoState Attributes

PFSTATE_TEXGEN
Setting pfGeoState Attributes

PFSTATE_TEXLOD
Setting pfGeoState Attributes

PFSTATE_TEXMAT
Setting pfGeoState Attributes

PFSTATE_TEXTURE
Setting pfGeoState Attributes

pfSwitch
OpenGL Performer Group Nodes

pfSync()
Merging Changes
Simulation Loop
 Extending a pfvViewer—Module Entry Points

PFTE_ADD
Setting the Texture Environment

PFTE_BLEND
Setting the Texture Environment

PFTE_DECAL
Setting the Texture Environment

PFTE_MODULATE
Setting the Texture Environment

pfTEnvBlendColor()
Setting the Texture Environment

pfTEnvMode()
Setting the Texture Environment

PFTEX_EXTERNAL_FORMAT
Specifying Texture Formats

PFTEX_IMAGE_FORMAT
Specifying Texture Formats

PFTEX_INTERNAL_FORMAT
Specifying Texture Formats

PFTEX_SUBLOAD_FORMAT
Specifying Texture Formats

pfTexDetail()
pfDelete() and Reference Counting

pfTexFilter()
Specifying Texture Attribute

pfTexFormat()
Specifying Texture Attribute
Specifying Texture Formats

pfTexImage()
pfDelete() and Reference Counting
Specifying Texture Attribute

pfTexRepeat()
Specifying Texture Attribute

pfText
Leaf Nodes

pfTexture
Creating a Texture Object

PFTR_BLEND_ALPHA
pfTransparency

PFTR_FAST
pfTransparency

PFTR_HIGH_QUALITY
pfTransparency

PFTR_MS_ALPHA
pfTransparency

PFTR_MS_ALPHA_MASK
pfTransparency

PFTR_OFF
pfTransparency

PFTR_ON
pfTransparency

pfTransparency
pfTransparency

PFTRAV_APP
Setting Up Node Callbacks

PFTRAV_CONT
Return Values for Traversal Callback Functions

PFTRAV_CULL
Setting Up Node Callbacks

PFTRAV_DRAW
Setting Up Node Callbacks

PFTRAV_ISECT
Setting Up Node Callbacks

PFTRAV_PRUNE
Return Values for Traversal Callback Functions

PFTRAV_TERM
Return Values for Traversal Callback Functions

pfuCalcDepth
Sample Customized Traversals

pfuDelGSetAttrs
Sample Customized Traversals

pfuDownloadTexList()
Preloading Textures

pfuFillGSetPackedAttrs
Sample Customized Traversals

pfuFindTexture
Sample Customized Traversals

pfuLowestCommonAncestor
Sample Customized Traversals

pfuLowestCommonAncestorOfGeoSets
Sample Customized Traversals

pfuMakeSceneTexList()
Preloading Textures

pfuTravCachedCull
Sample Customized Traversals

pfuTravCalcBBox
Sample Customized Traversals

pfuTravCountDB
Sample Customized Traversals

pfuTravCountNumVerts
Sample Customized Traversals

pfuTravCreatePackedAttrs
Sample Customized Traversals

pfuTraverser
Sample Customized Traversals

pfuTravNodeAttrBind
Sample Customized Traversals

pfuTravNodeHlight
Sample Customized Traversals

pfuTravPrintNodes
Sample Customized Traversals

pfuTravSetDListMode
Sample Customized Traversals

pfview program
Reading XML Configuration Files

pfvInteractor class
Picking, Selection, and Interaction

pfvmDrawStyle module
More Sample Programs, Configuration Files, and Source Code

pfvmEarthSky module
More Sample Programs, Configuration Files, and Source Code

pfvmLoader module
More Sample Programs, Configuration Files, and Source Code

pfvmLogo module
More Sample Programs, Configuration Files, and Source Code

pfvmNavigator module
Adding Interaction to a pfvViewer Program
More Sample Programs, Configuration Files, and Source Code

pfvmPicker module
Adding Interaction to a pfvViewer Program
More Sample Programs, Configuration Files, and Source Code

pfvmSnapshot module
More Sample Programs, Configuration Files, and Source Code

pfvmStats module
More Sample Programs, Configuration Files, and Source Code

pfvmTrackball module
More Sample Programs, Configuration Files, and Source Code

pfvmWorldSwitcher module
More Sample Programs, Configuration Files, and Source Code

pfvPicker class
Picking, Selection, and Interaction

pfvSelector class
Picking, Selection, and Interaction

pfvViewer class
libpfv—A Graphical Viewer Library
Overview

pfWindow functions
The pfWindow Windowing Functions

phase
Frame Rate and Synchronization

Phong shading
Sophisticated Shading

physiognomy, clownish
Generalized Morphing

pipe, setting up
Setti ng Up a Pipe

pipelines
setting up
Setti ng Up a Pipe

porting graphics library calls
Porting from IRIS GL to OpenGL

postConfig()
 Extending a pfvViewer—Module Entry Points

postCull()
 Extending a pfvViewer—Module Entry Points

postDraw()
 Extending a pfvViewer—Module Entry Points

precision clocks
High-Resolution and Video-Rate Clocks (pfGetTime,)

preConfig()
 Extending a pfvViewer—Module Entry Points

preCull()
 Extending a pfvViewer—Module Entry Points

preDraw()
 Extending a pfvViewer—Module Entry Points

pr.h header file
Using OpenGL Performer Header Files

primitive
attributes of
Attributes of pfGeoSet Primitives
stripped
Setting the Number of Vertices Per Stripped Primitive

primitive type
Setting the Primitive Type

primitives, setting number of
Setting the Number of Primitives

printing
Visual Database (pfScene)

printing objects
Printing Objec ts with pfPrint()
Printing Objec ts with pfPrint()

programming modules
libpfv—A Graphical Viewer Library
Overview

projective texture
Projective Texture

pyramid
Creating Common Geometric Objects

radiosity
Image Gallery

range()
Setting the Range
Setting the Range

real-time character animation
Survey of Visual Simulation Techniques

reference counting
pfDelete() and Reference Counting
pfDelete() and Reference Counting

references, circular. See circular references
Multiprocessing Framework

reflections
Environment Mapping

release notes
Installing the Software

resolution
Level of Detail Reduced for Performance

root node
Creating and Attaching the pfScene Node

routines
enterView()
 Extending a pfvViewer—Module Entry Points
enterWorld()
 Extending a pfvViewer—Module Entry Points
exitView()
 Extending a pfvViewer—Module Entry Points
exitWorld()
 Extending a pfvViewer—Module Entry Points
frame()
 Extending a pfvViewer—Module Entry Points
handleEvent()
Extending a pfvViewer—Writing Custom Modules
 Extending a pfvViewer—Module Entry Points
overlay()
 Extending a pfvViewer—Module Entry Points
pfAddGSet()
pfDelete() and Reference Counting
pfDelete() and Reference Counting
pfAsyncDelete()
Cleaning Up the Cache
pfChanGState()
Database Builder
pfChanViewport()
Setting Up a Channel
pfConfig()
Overview
Initializing Processes
 Extending a pfvViewer—Module Entry Points
pfCopy()
Copying Objects with pfCopy()
pfCull()
 Extending a pfvViewer—Module Entry Points
pfDelete()
pfDelete() and Reference Counting
pfDelete() and Reference Counting
pfdLoadFile()
Loading Databases into OpenGL Performer
Library Structure of OpenGL Performer
Finding Scene Graph Files
Overview
pfdMakeShared()
Optimizing Graphics State Changes
pfdMakeSharedScene()
Optimizing Graphics State Changes
pfdMergeGraph()
Using the Scene Graph Optimizer
pfDraw()
 Extending a pfvViewer—Module Entry Points
pfdSpatializeGraph()
Using the Scene Graph Optimizer
pfdStripGraph()
Using the Scene Graph Optimizer
pfFilePath()
Finding Scene Graph Files
Setting the Search Path for Database Files
pfFilePathv()
Finding Scene Graph Files
pfFrame()
Simulation Loop
Simulation Loop
 Extending a pfvViewer—Module Entry Points
pfGetRef()
pfDelete() and Reference Counting
pfGetTime()
High-Resolution and Video-Rate Clocks (pfGetTime,)
pfGetType()
Determining Ob ject Type
pfGetTypeName()
Determining Ob ject Type
pfGSetAttr()
pfDelete() and Reference Counting
pfGSetGState()
pfDelete() and Reference Counting
pfGSetHlight()
pfDelete() and Reference Counting
pfGStateAttr()
pfDelete() and Reference Counting
pfInit()
Overview
Initializing Shared Memory
pfInsertGSet()
pfDelete() and Reference Counting
pfDelete() and Reference Counting
pfIsOfType()
Determining Ob ject Type
pfMalloc()
pfDelete() and Reference Counting
Copying Objects with pfCopy()
pfMergeBuffer()
Cleaning Up the Cache
pfNewLight()
Specifying Lighting
pfRef()
pfDelete() and Reference Counting
pfReplaceGSet()
pfDelete() and Reference Counting
pfDelete() and Reference Counting
pfSync()
Merging Changes
Frame Rate and Synchronization
Simulation Loop
Simulation Loop
 Extending a pfvViewer—Module Entry Points
pfTexDetail()
pfDelete() and Reference Counting
pfTexImage()
pfDelete() and Reference Counting
pfUnref()
pfDelete() and Reference Counting
pfUnrefDelete()
pfDelete() and Reference Counting
postConfig()
 Extending a pfvViewer—Module Entry Points
postCull()
 Extending a pfvViewer—Module Entry Points
postDraw()
 Extending a pfvViewer—Module Entry Points
preConfig()
 Extending a pfvViewer—Module Entry Points
preCull()
 Extending a pfvViewer—Module Entry Points
preDraw()
 Extending a pfvViewer—Module Entry Points
sync()
 Extending a pfvViewer—Module Entry Points

sample code
Locations of Perfly and Example Source Code
The pfWindow Windowing Functions
Overview
More Sample Programs, Configuration Files, and Source Code

sample data
Overview

sample programs
Perfly
Part One: Overview of OpenGL Performer
Getting Acquainted with OpenGL Performer

sample source directory
Conventions

scene graph
Visual Database (pfScene)
Creating Scene Graphs
Creating a Database
Glossary
adding nodes
Adding Nodes in a Scene Graph
creating
Creating a Scene Graph
file formats supported
Loading a Scene Graph
loading
Loading a Scene Graph
placing geometry in
Placing Geometry in a Scene Graph
saving
Saving a Scene Graph
traversal
Scene Graph Traversals

scene graph files
Finding Scene Graph Files
Setting the Search Path for Database Files

search paths
Setting the Search Path for Database Files

shading
Sophisticated Shading
Sophisticated Shading

shared memory
initializing
Initializing Shared Memory

shininess
Specifying the Color and Shininess

Sierpinski sponge
 libpfdu—Geometry Builder Library

simple.c example program
Overview

simulation loop
Simulation Loop

simulator sickness
Low-Latency Image Generation

single inheritance
Inheritance Graph

skeleton animation
Skeleton Animation

sky
Special Features (pfEarthSky, pfSequence, pfASD)

sorting
Antialiasing

source code
Locations of Perfly and Example Source Code
Overview
sample code
Database Construction

source code examples
Conventions

source code tour
Overview

sparkle
Antialiasing

specular
Specifying the Material

Sphere
Creating Common Geometric Objects

state management
Efficient Graphics State Management

state values, default
pfGeoStates and pfGeoSets

statistics
More Controls

stress
Glossary

stress management
Frame Control

subpixel Z-buffer
Antialiasing

subpixels
Antialiasing

supported formats
Loading a Scene Graph

surface
Surface Appearance

sync()
 Extending a pfvViewer—Module Entry Points

synchronization mode
Frame Rate and Synchronization

system load management
Frame Control

texture
Using Textures
components
Specifying Texture Attribute
coordinates
Setting the Texture Coordinates
enabling
Enabling Texture Mapping
environment
Setting the Texture Environment
environment mapping
Environment Mapping
loading
Loading an Image as a Texture
overview
Texture Mapping
preloading
Preloading Textures
specifying attributes
Specifying Texture Attribute

texture mapping
Survey of Visual Simulation Techniques
Texture Mapping
Enabling Texture Mapping
Glossary

time of day clockclocks
available types
High-Resolution and Video-Rate Clocks (pfGetTime,)

timing
High-Resolution and Video-Rate Clocks (pfGetTime,)

tokens
PFTRAV_ISECT
Intersection Masks

total animation
Total Animation

total latency
Low-Latency Image Generation

tour through simple.c
Overview

trackball
Trackball

transition
between csLOD child nodes
Transitioning Between Levels of Detail

transparency
Antialiasing

transparency in textures
Surface Appearance

transport delay
Low-Latency Image Generation

traversal
Glossary
creating
Sample Customized Traversals
customized
Traversal Order
customizing
Setting Up Node Callbacks

traversal mask
Node Attributes

traversal, pipelined
Pipelined Traversals

traversal, scene graph
Scene Graph Traversals

traversals
Visual Database (pfScene)
overview
Visual Database (pfScene)

triangle meshing
Database Builder

triangle strip
Indexed Arr ays

twinkle
Antialiasing

type, actual, of objects
Determining Ob ject Type

typographical conventions
Conventions

update rate
Frame Rate and Synchronization

user data
User Data
User Data

user interfaces
X and IRIS IM

vertex coordinate attribute
Packed Attributes

video counter
High-Resolution and Video-Rate Clocks (pfGetTime,)

video retrace period
Frame Rate and Synchronization

video, Dynamic Video Resolution, see DVR
Maintaining Frame Rate Using D VR

viewing frustum
Glossary

viewing volume
Glossary

viewport
Glossary

virtual reality
What Is OpenGL Performer?
Why Use OpenGL Performer?
OpenGL Performer Applications

virtual set
Why Use OpenGL Performer?

visual latency
Low-Latency Image Generation

visual programming
OpenGL Performer Applications

visual simulation
What Is OpenGL Performer?
Why Use OpenGL Performer?
overview
Survey of Visual Simulation Techniques

Wavefront
OBJ format
Loading Databases into OpenGL Performer

Wavefront file
Loading a Scene Graph

windows
The pfWindow Windowing Functions
X and IRIS IM

Workbench file
Loading a Scene Graph

world space
World Space
Glossary

Wright, Frank Lloyd
Image Gallery

X window system
X and IRIS IM

XML configuration file
Reading XML Configuration Files