

Instructions for Using the Implicit Surface Renderer
----------------------------------------------------
Questions can be sent to either
John Hughes:   jfh@cs.brown.edu   or
David Bremer:  djb@cs.brown.edu



System Requirements
-------------------
The Java3D library is used for rendering, and must
be installed on your local machine before this can
run.

A 3-button mouse is needed to view and edit models.



Getting Started
---------------
The algorithm runs as an application, not an applet.
It can take one parameter--the filename of a model
to be viewed.  If no name is given, the user will
use the model editor to create a model.

Start by viewing one of the smaller models, like mickey.blob
or duck.blob.  Type "java Illus3D mickey.blob" at the command 
line to begin.  Zoom out and rotate the camera around the 
model, as described in the "Viewing" section below, to see 
the algorithm in action.



Editing
-------
Button 1 is used to edit the model.  The interface for modeling is
still pretty rough.

Currently only blobby models are in use.  To edit a model, first 
click the "Edit" button in the lower left corner to display the 
positions and relative strengths of blobbies, as well as a reference
plane.  Notice that a red 'x' appears on the reference plane under
each blobby, to act as a shadow.

Click and release the button on the plane to create a new blobby.

Click and drag on top of a blobby to move it parallel to the
film plane.

Click, but don't drag, on top of a blobby to remove it.

Hold down SHIFT and click on a blobby to increase its influence.

Hold down CTRL and click on a blobby to decrease its influence.

Hold down both SHIFT and CTRL and click on a blobby to negate its influence.



Guiding the Algorithm
---------------------
Button 2 controls a little-used feature for telling the algorithm
where it should cast rays during it's search, and/or where the
viewer would like to see more shading strokes.



Viewing
-------
Button 3 controls the camera.  Three camera operations are supported:
panning, zooming, and trackball rotation.  There are no buttons to
control this.  A gestural interface is used instead.  At the beginning
of each click-drag-release sequence, the position and initial motion 
of the mouse determine which type of camera motion is used.

Click fairly close to the border to start camera trackball rotation.

Click in the center and begin to drag down or up to zoom in and out.

Click in the center and begin to drag left or right to pan the camera.



Miscellaneous buttons, sliders, etc. on screen
----------------------------------------------
Auto-draw:          Mainly used for debugging.  Once you click this, the algorithm 
                    stops and cannot restart without restarting the program.  But, 
                    the 3D geometry used to make the image remains in view and can
                    now be seen from all sides.
Edit:               Toggle on and off the display of objects used for modeling.
FPS slider:         Raise and lower the amount of time allowed for searching 
                    for silhouette curves.
Resolution slider:  Change the spacing between line segments making up the 
                    silhouette curve.
Isosurface Field:   The user can type in which isosurface he/she would like to see.
Load:               Broken now.  Should load a blobby model.
Save:               Does work.  Saves the current model.
Clear:              Only used for debugging.
Quit:               Exits the program.