58 lines
2.9 KiB
Plaintext
58 lines
2.9 KiB
Plaintext
|
ABOUT THIS PROGRAM:
|
||
|
Backtrace is an OpenGL program meant to simulate ray tracing.
|
||
|
It displays a refractive sphere above a plane. The sphere is lit by
|
||
|
red, green, and blue spotlights which may be manually moved. The
|
||
|
shadow of the sphere and the light which is refracted through the
|
||
|
sphere are projected onto the plane.
|
||
|
The "Material" menu controls the refractiveness of the sphere.
|
||
|
The "Draw" menu controls which subparts of the scene are
|
||
|
drawn. By default, the "Draw Texture" option is off. Texture mapping
|
||
|
is slow on many systems and the texture map is completely gratuitous.
|
||
|
However, you may want to turn texture mapping on once to see if the
|
||
|
performance is acceptable on your system.
|
||
|
The "Subdivision" menu controls the number of subdivisions
|
||
|
used to draw the plane, the sphere, the lights, the shadows, and the
|
||
|
refractions. More subdivisions will look better, but will be slower.
|
||
|
The "Lights" menu can be used to turn the lights on and off on
|
||
|
an individual basis. The "Reset Lights" button moves all the lights
|
||
|
back to their original positions.
|
||
|
The "Quick Motion" option under the option menu makes motions
|
||
|
in r and phi (controlled by the middle and right mouse buttons,
|
||
|
respectively) happen much more quickly by delaying recompuation of the
|
||
|
shadows and refraction until the mouse button is released. The
|
||
|
"Rotate Automatically" toggle causes the lights to rotate about the z
|
||
|
axis at random speeds.
|
||
|
Moving of the lights is accomplished with the mouse. The
|
||
|
author wishes to apologize for the horribly awkward interface. To
|
||
|
move a light, move the pointer over it and press one of the mouse
|
||
|
buttons down. Draw the mouse to move the light. It is easiest to
|
||
|
imagine the lights in spherical coordinates. The left mouse button
|
||
|
controls rotation in theta (about the z axis). Moving the mouse
|
||
|
horizontally while holding down the left mouse button will increase or
|
||
|
decrease theta.
|
||
|
The middle mouse button controls the radius, or the distance
|
||
|
of the light from the sphere. Dragging the mouse toward the center of
|
||
|
the screen decreases the distance of the light from the sphere, while
|
||
|
moving away from the center of the screen increases the distance.
|
||
|
The right mouse button controls rotation in phi, which can be
|
||
|
thought of as the elevation of the light. Moving the mouse
|
||
|
horizontally will change the elevation.
|
||
|
|
||
|
TO COMPILE:
|
||
|
Type "make." Note that you must have a C++ compiler
|
||
|
installed. There may be a warning or two, but these should not cause
|
||
|
problems. You must first have compiled libtk.a. You must also have
|
||
|
a development copy of Motif and the Motif GL widget installed.
|
||
|
|
||
|
OTHER MAKEFILE TARGETS:
|
||
|
"make clean" removes objects, ~ files, and core files.
|
||
|
"make clobber" also removes the executable.
|
||
|
|
||
|
KNOWN BUGS:
|
||
|
It's possible to change the phi of a light in such a way that
|
||
|
the light gets below the sphere, which leads to unexpected (and
|
||
|
inaccurate) results.
|
||
|
|
||
|
AUTHOR:
|
||
|
Celeste Fowler
|