Conix 3-D Explorer

This software, from Conix Enterprises, is an add-on package to Mathematica that allows you to use OpenGL 1.0-based rendering features directly from within the Mathematica environment.

Documentation

The only documentation for GLExplorer is the on-line manual.
Even if you have never used Mathematica, their help system is quite
easy to use and includes hypertext links with
expandable/retractable sections. You can execute the example
commands listed in the Help browser by clicking on the cell bracket
(at the right of each cell) with the right mouse button and
selecting
Kernel->Evaluation->Evaluate Cells.

All example uses of GLExplorer covered in the on-line
documentation require that you first run the command

Needs["GLExplorer`GLRenderer`"]

This command starts the GLExplorer rendering engine. Once
started, a small icon (see Figure 1) will appear on your desktop.
Although this command is listed at the start of each example, you
need to run the command only once to start the engine. After that,
you can skip this command in each of the subsequent examples you
try.

Figure 1. GLExplorer Engine Icon

Running Mathematica/3-D Explorer

The first thing I noticed about running Mathematica, on its
own, was the dialog box that pops open at start time. This box
complained about the fonts not being installed correctly, but if I
clicked on the Continue button in the dialog everything seemed to
work fine. Fonts necessary to run Mathematica are installed under
$MATHEMATICA/SystemFiles/Fonts/Type1 and
$MATHEMATICA/SystemFiles/Fonts/X, where $MATHEMATICA is the
top-level directory where you installed all the Mathematica files.
The default for this is /usr/local/Mathematica. For everything to
work right, the Type1 fonts should be listed prior to the X fonts
in your X server's font path.

While looking at the GLExplorer Demos provided, you will find
reference to GLShow, a GLExplorer
command. Conversion of Mathematica's 2-D and 3-D graphics into
OpenGL-based graphics is handled through this command. The command
accepts standard Mathematica Show
command syntax, making it fairly easy to make use of OpenGL for
interactive graphics display without having to learn a lot about
it.

GLShow immediately opens a new window. This window is small,
about 256x256 pixels, but is interactive. You can immediately
rotate any 3-D shape and translate (move around the window) any 2-D
or 3-D graph.

Figure 2. Snake Knot Demo

The Snake Knot demo shows how a complex set of formulas can
be combined to produce interesting graphics with both Mathematica
and GLExplorer. The command

produced the image in Figure 3. Note the values
PI and -> are used to
represent text that only Mathematica's special fonts can show.
Figure 4 shows the same object rotated and enlarged in the
GLExplorer window. Rotations can be done using simple mouse-button
clicks and drags. Enlarging the window will automatically redraw
the object it contains to fit the new window size.

Figure 3. GLShow Display

Apparently, the windows opened by GLShow can be closed only
by using the window manager's window menu Close option. If there is
a more appropriate way to close the windows, I could not find
it.

Figure 4. Knot Rotated and Enlarged

OpenGL 3-D Support

3-D Explorer is not a complete implementation of OpenGL.
Rather, it offers an interface that allows direct access to a
subset of OpenGL, plus a method of extending this access to
encompass any OpenGL function. In order to use the existing or
extended set of OpenGL primitives and directives, you need to
understand the 3-D Explorer GLGraphics object.

Supported features of OpenGL are those expected for any good
3-D tool. They include drawing and color primitives, antialiasing,
lighting and transformations. Accessing these primitives is done
with the GLGraphics object. The
GLGraphics object allows you to specify associations of points,
lines, objects, colors, etc., all of which can then be viewed using
GLShow.

Drawing primitives supported by GLExplorer include (but are
not limited to) points, lines, triangles, polygons, surfaces and
cuboids. Color primitives include RGB/RGBA, CMYK, HSL and
gray-scale colors. All drawing primitives can have their sizes
(thickness) and colors set using 3-D Explorer directives such as
PointSize or EdgeForm. Antialiasing, hidden line removal and
lighting are all supported. In fact, any OpenGL capability
recognized by the OpenGL glEnable
function can be set using the Enable directive of
GLExplorer.

Transformations such as rotation, scaling and translating are
supported locally by GLExplorer. These are handy when used with
OpenGL display lists. Display lists are a method of grouping OpenGL
primitives together so they can be rerun as a single object. This
method of grouping provides better efficiency and is part of the
OpenGL specification itself. GLExplorer offers complete access to
this feature.

Texturing of OpenGL objects is supported; however, the demo
showing a texture on a wave (from the on-line documentation)
crashed GLExplorer. I was never able to run this example
successfully.

You can extend GLExplorer to encompass any OpenGL function
through the use of the Commands
wrapper. This GLExplorer command allows you to call any OpenGL
function from within the format of a Mathematica graphics
expression.