OpenGL Optimizer™ Programmer's Guide: An Open API for Large-Model Visualization
Document Number: 007-2852-002
| List of Figures | List of Examples | List of Tables |
Table of Contents
Audience for This GuideHow to Use This GuideWhat This Guide ContainsRecommended Background ReadingConventions Used in This Guide
The Optimizer Challenge and SolutionThe OpenGL Optimizer Toolset
2. Basic I/O: Getting Started with OpenGL Optimizer
Calling opInit()Saving and Loading Scene-Graph FilesViewing Class: opViewerControlling Rendering: opKeyCallback and opDrawImpl
II. High-Level Strategic Tools for Fast Rendering
3. Sending Efficient Graphics Data to the Hardware
Display ListsVertex ArraysShortening Representations of Surface Normal DataAvoiding OpenGL Mode SwitchingCreating OpenGL Connected Primitives
4. Rendering Appropriate Levels of Detail
Overview of Simplification ToolsopSimplify: Base Class for Adding Level-of-Detail NodesCreating LODs: opSRASimplifyRossignac Simplification Algorithm: opLatticeSimplifyMerging Graphs With Differing Levels of Detail: opMergeScenes
5. Culling Unneeded Objects From the Scene Graph
View-Frustum CullingOcclusion CullingView-Frustum and Occlusion Cull Draw Traversal: opDrawActionRendering With View-Frustum and Occlusion Culling: opOccDrawImplTuning Tips for Occlusion CullingDetail CullingBack-Face Culling
6. Organizing the Scene Graph Spatially
Effect of Spatialization on Cull TraversalsGranularity Trade-offsWhen to SpatializeSpatialization AlgorithmSpatialization Tool: opSpatializeClasses for Component Procedures of Spatialization
III. Specific Tools for Fast Rendering
7. Interactive Highlighting and Manipulating
Overview of Highlighting and PickingInteracting With a Rendered Object: opPickDrawImplScene Graph Modification: opPickNode to Override Appearances: opHighlight
8. Efficient High-Quality Lighting Effects: Reflection Mapping
Simple Mapping: Remote View of a Remote EnvironmentAccurate Mapping: Local View of a Local EnvironmentReflection-Mapping Class: opReflMap
IV. Managing and Rendering Higher-Order Geometric Primitives
9. Higher-Order Geometric Primitives and Discrete Meshes
Features and Uses of Higher-Order Geometric PrimitivesObjects Required by RepsGeometric Primitives: The Base Class opRep and the Application repTestPlanar CurvesSpatial CurvesParametric SurfacesopCuboidRegular Meshes and Discrete Surfaces
10. Creating and Maintaining Surface Topology
Overview of Topology TasksSummary of Scene Graph Topology: opTopoConsistent Vertices at Boundaries: opBoundaryCollecting Connected Surfaces: opSolid
11. Rendering Higher-Order Primitives: Tessellators
Features of TessellatorsBase Class opTessellateActionTessellating Curves in SpaceTessellating a Cuboid: opTessCuboidActionTessellating Parametric SurfacesTessellating a Regular Mesh
V. Traversers, Low-Level Geometry Processing, and Multiprocessing
12. Traversing a Large Scene Graph
Traversals and Callbacks: General FeaturesControlling a Traversal With the Callback Return Value opTravDispSpecifying Deletion of Traversal Object Storage: opActionDispDepth-First Traversals: opDFTravActionBreadth-First Traversals: opBFTravActionSample Traversal Function From the opoptimize Sample ApplicationTraversing a Scene Graph and Applying a csDispatch: opDispatchAction
13. Manipulating Triangles and Rebuilding Renderable Objects
Overview of Low-Level Geometry ToolsDecomposing csGeoSets Into Constituent Triangles: opGeoConverterSpecifying Coloring of New csGeoSets: opColorGeneratorBuilding New csGeoSets
14. Managing Multiple Processors
MP Control Tasks and Related ClassesOverview of the Thread ManagerThread Manager: opThreadMgrDefining Tasks for a Thread ManagerCoordinating Threads That Change a Scene Graph: opTransactionMgrLow-Level Multiprocess Tools
VI. Utilities and Troubleshooting
15. Utilities
Error Handling and NotificationPerformance Indicatorsopx: A Template Class for Dynamic Arrays of Contiguous ElementsPrinting a Scene GraphGathering Triangle StatisticsDisplaying Node InformationObserving OpenGL ModesCommand-Line Parser: opArgParser
16. Troubleshooting
Compiler Warning MessagesRun-Time Warning MessagesTuning the Scene Graph Database
VII. Appendices
A. Installing OpenGL Optimizer
Installing the OpenGL Optimizer and Supporting Software on UNIX SystemsInstalling OpenGL Optimizer on NT Systems
B. OpenGL Optimizer Sample Applications
Command-Line Options and User Inputopviewer Sample ApplicationOther Sample Applications
C. opviewer Sample Application
Verifying InstallationCompiling and Running opvieweropviewer Code
D. Scene Graph Tuning With the opoptimize Application
Values Returned by Scene Graph ToolsCompiling and Running opoptimizeopoptimize Code
opGUI Class HierarchyopXmGUI class hierarchyOptimizer Class Hierarchy