Extending the DIVERSE Graphics Interface to Support OpenGL(tm)
Principal Investigator:
Christopher Logie
clogie@vt.edu
(540) 951-6995
Introduction:
This project will use the DIVERSE (http://www.diverse.vt.edu/)
programming
system to augment the OpenGL(tm) graphics API (http://www.opengl.org/)
so that
one may develop virtual environments and visualization computer programs
which
easily scale from desktop workstations to high end visualization tools
such
as the VT-CAVE(tm). The new piece of software will be known as
the DIVERSE
Graphics Interface to OpenGL(tm), or dgiGL.
Description:
DIVERSE is a application programming interface (API) which allows virtual
environments and visualization applications to scale from desktop workstations
to high end supercomputers without significant code changes.
DIVERSE
currently consists of two parts: DTK, a distributed shared memory tool
kit
which allows one share input devices over a network, and dgiPf, which
augments
SGI's OpenGL Performer graphics API.
OpenGL(tm) is an industry standard low-level 3D graphics API.
It is important
to visualization for several reasons. First, it is often a lowest
common
denominator for computer graphics. Different computer systems
may support
different high level graphics interfaces, but nearly every one supports
OpenGL(tm). Second, many high level software toolkits are based on
OpenGL(tm).
For example, OpenGL Volumizer(tm) is a software toolkit which allows
for easy
rendering of volume data on systems which support OpenGL. Therefore,
with
dgiGL the scaleability of DIVERSE can be extended to programs which
use many
different high level graphics toolkits.
Objectives:
I have divided the objectives for this project into two sets. The
main
objectives are what will be delivered by the end of the semester.
The
optional objectives define the direction that this project will take
after the
semester. In the case that I finish the main objectives before
the end of the
semester, I will begin on the optional objectives.
The main objectives of this class project will be:
1. To define a logical, clean programming interface
for dgiGL.
2. To implement enough of dgiGL to seamlessly scale
several different example programs from a desktop workstation to the VT-CAVE(tm).
3. To develop a Programming Manual, Reference Manual,
and short Tutorial for the dgiGL API.
4. To develop a WWW presentation for interested professors
and students which describes the project, and the level of success that
I achieved as measured by these objectives.
The optional objectives of this class project will be:
1. To "bullet-proof" the implementation of dgiGL so that it may
be released for use outside of Virginia Tech.
2. To demonstrate that higher level toolkits such as OpenGL Volumizer
can take advantage of the scaleability of dgiGL.
3. To Integrate dgiGL with the existing parts of DIVERSE (DTK
and dgiPf).
The following objectives are outside of the scope of this class project:
1. Input Subsystem. The existing graphics API (dgiPf) has
an input subsystem which integrates with DTK, the X Window System, and
other input sources. I do not intend to develop from scratch an analogous
input system for dgiGL. Development will begin with no input system,
and then the work of Dr. Lance Arsenault from Fall 2000 will be integrated
with my work. In the case that this is not available, my own work
on the pre-beta input system for dgiPf from the summer of 2000 will be
integrated with my course project.