Extending the DIVERSE Graphics Interface to Support OpenGL(tm)
This project will use the DIVERSE (http://www.diverse.vt.edu/)
system to augment the OpenGL(tm) graphics API (http://www.opengl.org/)
one may develop virtual environments and visualization computer programs
easily scale from desktop workstations to high end visualization tools
as the VT-CAVE(tm). The new piece of software will be known as
Graphics Interface to OpenGL(tm), or dgiGL.
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.
currently consists of two parts: DTK, a distributed shared memory tool
which allows one share input devices over a network, and dgiPf, which
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
denominator for computer graphics. Different computer systems
different high level graphics interfaces, but nearly every one supports
OpenGL(tm). Second, many high level software toolkits are based on
For example, OpenGL Volumizer(tm) is a software toolkit which allows
rendering of volume data on systems which support OpenGL. Therefore,
dgiGL the scaleability of DIVERSE can be extended to programs which
different high level graphics toolkits.
I have divided the objectives for this project into two sets. The
objectives are what will be delivered by the end of the semester.
optional objectives define the direction that this project will take
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
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
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.