windows-nt/Source/XPSP1/NT/multimedia/opengl/test/demos/backtrac
2020-09-26 16:20:57 +08:00
..
backtrac.cxx Add source files 2020-09-26 16:20:57 +08:00
backtrac.rc Add source files 2020-09-26 16:20:57 +08:00
cbacks.cxx Add source files 2020-09-26 16:20:57 +08:00
cbacks.hxx Add source files 2020-09-26 16:20:57 +08:00
color.hxx Add source files 2020-09-26 16:20:57 +08:00
floor.rgb Add source files 2020-09-26 16:20:57 +08:00
floor2.rgb Add source files 2020-09-26 16:20:57 +08:00
go.cmd Add source files 2020-09-26 16:20:57 +08:00
makefile Add source files 2020-09-26 16:20:57 +08:00
makefile.sdk Add source files 2020-09-26 16:20:57 +08:00
menu.h Add source files 2020-09-26 16:20:57 +08:00
opengl.rgb Add source files 2020-09-26 16:20:57 +08:00
point.cxx Add source files 2020-09-26 16:20:57 +08:00
point.hxx Add source files 2020-09-26 16:20:57 +08:00
readme Add source files 2020-09-26 16:20:57 +08:00
scene.cxx Add source files 2020-09-26 16:20:57 +08:00
scene.hxx Add source files 2020-09-26 16:20:57 +08:00
sources Add source files 2020-09-26 16:20:57 +08:00
unitdisk.cxx Add source files 2020-09-26 16:20:57 +08:00
unitdisk.hxx Add source files 2020-09-26 16:20:57 +08:00

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