Chapter 1. Volumizer Advantages

The OpenGL Volumizer API is a library of C++ classes that facilitates the display and manipulation of volumetric data. Typical examples of volumetric shapes include:

The OpenGL Volumizer API facilitates rapid development of efficient, portable, and easily maintainable applications that have the ability to manipulate volumes.

Figure 1-1. Volumetric Rendering

Figure 1-1 Volumetric Rendering

OpenGL Volumizer facilitates displaying and manipulating volumetric data by providing a level of abstraction that shelters the application programmer from the mundane task of dealing with platform-specific details thereby shortening prototyping and development cycles and allowing the programmer to focus on the application rather than the mechanics of the volume rendering process. At the same time, OpenGL Volumizer allows the implementers of the API to create highly optimized code that can be tailored to specific platforms and updated as new hardware and software are introduced. Applications can thus take full advantage of the underlying hardware while maintaining a single code base spanning multiple platforms.

This chapter provides a high-level overview of OpenGL Volumizer and differentiates it from other volume rendering APIs, in the following sections:

Volumizer Advantages

OpenGL Volumizer is specifically designed for volume visualization applications. It hides the details of low-level graphics languages and exposes only those functions that are necessary for viewing volumetric data.

OpenGL Volumizer provides an unparalleled set of sought-after features. The following sections describe some of them:

Faster Development Cycle

Volumizer facilitates displaying and manipulating volumetric data by providing a level of abstraction that shelters the application programmer from the mundane task of dealing with platform-specific details. Volumizer thereby shortens prototyping and development cycles.

By handling the mechanics of volume rendering, application development time is radically shortened.

High Performance

The driving force behind Volumizer is optimal handling and display of volumetric models. Volumizer enables developers to create highly optimized code tailored to specific platforms that can be updated as new hardware and software is introduced.

Handles Large Data Sets

Volumizer's 64-bit support enables access and manipulation of data files larger than 4 GB. A typical seismic data set could be as large as 10 GB. OpenGL Volumizer hides the details of handling such large data sets.

Easy-to-Use API

Volumizer is the higher-level alternative to OpenGL that allows developers to focus more directly on the large picture rather than on the fine granularity characteristic of low-level graphics programming languages, such as OpenGL.

By handling the mechanics of volume rendering, Volumizer enables developers to focus on the unique qualities that differentiate their application.

Low-Level Control

Volumizer provides the ease of a higher-level graphics programming language. However, Volumizer supports full access to OpenGL for programmers needing low-level control in their applications. Applications can thereby take full advantage of the underlying hardware while maintaining a single code base spanning multiple platforms.

Familiar Environment

Volumizer operates in the familiar, immediate-mode graphics, which is characteristic of OpenGL based applications.

Cross-Platform Support

Developing graphics applications for different platforms and different operating systems is both time consuming and expensive. Now, with Volumizer, developers can create one application that runs on many platforms and operating systems without modification. While the current release of Volumizer is for IRIX only, support for other hardware and software platforms is being considered.

Interoperability With Other Toolkits

Volumizer API is an immediate mode toolkit built on top of OpenGL. Therefore, Volumizer can be used in the familiar framework of many existing, immediate mode applications.

Volumizer enables the integration of its volumetric shapes with the geometric shapes produced by other, higher-level, retained mode toolkits, such as:

  • IRIS Performer

  • Open Inventor

  • OpenGL Optimizer

For example, you can render volumetrically defined clouds in a flight simulator (IRIS Performer), or a CAD model (OpenGL Optimizer) of a hip prosthesis in the anatomical context provided by a diagnostic CT scan of a pelvis. This intermixing is possible because Volumizer converts volumes into a set of polygons; each polygon is a slice of a volume and each slice can be rendered with polygons from the other toolkits.

OpenGL Volumizer does not explicitly provide support for any of the toolkits mentioned above. Instead, simple examples of how to create node “wrappers” in these toolkits are provided.

Multi-Pipe Capability

While Volumizer does not explicitly support multi-pipe operation, Volumizer can be used in conjunction with other software to provide this functionality. For example, Volumizer can operate in the frameworks of Optimizer, Performer and Multi Pipe Utility (MPU) all of which provide this type of functionality.

Feature-Rich API

Volumizer provides a robust set of features, including:

  • Volume deformation

  • Arbitrarily-shaped volumes of interest

  • Volume modeling decoupled from appearance

  • Roaming very large data sets

  • A unified approach to regular grids and unstructured meshes

  • Support for imbedded geometry

  • Support for handling multiple volumes

  • Voxel picking

Where OpenGL Volumizer Fits In

The Volumizer API is a layer of functionality that, like other Silicon Graphics graphics APIs, sits on top of OpenGL, as shown in Figure 1-2.

Figure 1-2. OpenGL Volumizer in Relation to Other Graphics APIs

Figure 1-2 OpenGL Volumizer in Relation to Other Graphics APIs

Volumizer is positioned on top of OpenGL because Volumizer can:

  • Be decomposed into more primitive actions already supported by OpenGL

  • Provide a high degree of configurability, extensibility (low level control), and ease-of-use (high level of abstraction)