About This Guide

The OpenGL Volumizer API is a library of C++ classes that facilitates the display and manipulation of volumetric shapes. This guide provides a developer's introduction to the API in two parts: Part One describes all the basic concepts in Volumizer and the most-commonly used classes in the API. A full-length, annotated example application shows the Volumizer concepts and API in context.

Part Two of the book presents advanced topics, including concepts, classes, and methods not presented in Part One.

Audience for This Guide

This book is intended for C++ developers of volumetric applications who understand the basic concepts of computer graphics programming.

Familiarity with OpenGL concepts and programmatic interfaces is strongly recommended.

How to Use This Guide

The first chapter introduces you to the central concepts of OpenGL Volumizer. These concepts are described in terms of the OpenGL Volumizer API in Chapter 2. Chapter 2 also presents a step-by-step guide for creating a OpenGL Volumizer application.

Subsequent chapters explore the OpenGL Volumizer API in greater detail in a task-oriented format.

What This Guide Contains

This book contains the following chapters:

Part One: Using the Volumizer API

Chapter 1, “Volumizer Advantages,” provides an overview of OpenGL Volumizer and lists its advantages.

Chapter 2, “Basic Concepts in Volumizer,” describes, at a high level, the important concepts you need to understand before developing an OpenGL Volumizer application.

Chapter 3, “Programming Template,” describes in terms of the OpenGL Volumizer API the concepts discussed in Chapter 1. This chapter also presents the basic steps you take to create your own OpenGL Volumizer application.

Chapter 4, “Sample OpenGL Volumizer Application,” presents annotated code for a sample OpenGL Volumizer application.

Chapter 5, “Volumizer API at a Glance,” provides a high-level overview of the entire API.

Part Two: Advanced Topics

Chapter 6, “Volumetric Geometry,” describes the OpenGL Volumizer classes that relate to creating volumetric geometry.

Chapter 7, “Volumetric Appearance,” describes the OpenGL Volumizer classes that relate to applying appearances to volumetric geometry.

Chapter 8, “Customized Volume Drawing,” describes how to create your own draw action for rendering volumes.

Appendix A, “Volume Rendering Examples,” presents OpenGL and OpenInventor examples using the OpenGL Volumizer API.

A glossary and index follow the appendix.

New in This Revision

This revision incorporates the following changes:

  • Added descriptions for three previously undocumented parameters of voAppearanceActions::getBestParameters():

    • partialBrickType

    • diskDataFormat

    • subdivideMode

  • Updated the description of dataConvert to accommodate diskDataFormat.

  • Added a new section to Chapter 7, “Volumetric Appearance,” to describe modifying voxels.

  • Made miscellaneous editing corrections.

Recommended Reference Materials

Silicon Graphics Publications

The following are found in IRIS InSight:

  • IRIS Performer Programming Guide (SGI_Developer bookshelf)

  • MIPS Compiling and Performance Tuning Guide (SGI_Developer bookshelf)
    For information on dynamically shared objects (DSOs).

  • OpenGL on Silicon Graphics Systems (SGI_Developer bookshelf)

Third-Party Publications

  • Farin, Gerald. Curves and Surface for Computer Aided Geometric Design. San Diego, CA.: Academic Press, Inc., 1988.

  • D. Voorhies and J. Foran, “Reflection Vector Shading Hardware” in Computer Graphics Proceedings, Annual Conference Series, ACM, 1994.

  • The OpenGL WWW Center at http://www.sgi.com/Technology/OpenGL.

The following are all produced by Addison-Wesley Publishing:

  • Foley, J. D., A. VanDam, S. K. Feiner, and J. F. Hughes, Computer Graphics: Principles and Practice, 1990.

  • Gamma, E., R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, 1995.

  • Kilgard, M. J., Programming OpenGL for the X Window System, 1996. (Also known as “the Green book.”)

  • Watt, A. and M. Watt, Advanced Animation and Rendering Techniques: Theory and Practice, 1992. Note Chapter 6, “Mapping Techniques: Texture and Environment Mapping.”

  • Wernecke, J., The Inventor Mentor: Programming Object-Oriented 3D Graphics with Open Inventor, 1994.

  • Wernecke, J., The Inventor Toolmaker, 1994.

Conventions Used in This Guide

All class and function names, and other literals in the OpenGL Volumizer API have names that begin with prefix vo, followed by a string beginning with an upper case letter, for example, voBrick. Related utilities use vout prefix, for example voutPerfMeter.

These type conventions and symbols are used in this guide:

Bold 

C++ class names, C++ member functions, C++ data members, and function names.

Italics 

Filenames, manual/book titles, new terms, and variables.

Fixed-width type 


Code.

Bold fixed-width type 


Keyboard input keys.

ALL CAPS 

Environment variables, defined constants.

() (Bold Parentheses) 


Follow function names. They surround function arguments if needed for the discussion or are empty if not needed in a particular context.

Reader Comments

If you have comments about the technical accuracy, content, or organization of this document, please tell us. Be sure to include the title and document number of the manual with your comments. (Online, the document number is located in the frontmatter of the manual. In printed manuals, the document number can be found on the back cover.)

You can contact us in any of the following ways:

  • Send e-mail to the following address:

    [email protected]
    

  • Use the Feedback option on the Technical Publications Library World Wide Web page:

    http://techpubs.sgi.com
    

  • Contact your customer service representative and ask that an incident be filed in the SGI incident tracking system

  • Send mail to the following address:

    Technical Publications
    SGI
    1600 Amphitheater Pkwy., M/S 53 5
    Mountain View, California 94043-1351

  • Send a fax to the attention of “Technical Publications” at +1 650 932 0801.

We value your comments and will respond to them promptly.