University of California, Berkeley EECS Dept, CS Division |
||
Jordan Smith |
SLIDE: Scene Language for Interactive Dynamic Environments |
Prof. Carlo H. Séquin |
Home | Goals | Publications | People | Gallery | Assignments | Distributions |
In this assignment you will learn more about user interaction
techniques with the OpenGL graphics library and SLIDE. You will be developing
a polygon editor which can emit both a static file of the moved
geometry or a dynamic SLIDE scene where the original geometry morphs
into the modified geometry.
Again, this assignment has to be done INDIVIDUALLY.
The polygon editor will read in a SLIDE file describing a polygon, allow the user to move the vertices around using rubber-banding, and write out the SLIDE description of the resulting polygon or of the dynamic scene morphing from the original to the edited polygon.
1. When the LEFT mouse button is pressed, the vertex that lies under the cursor is selected for movement. While the LEFT mouse button is held down, the selected vertex moves with the cursor, and the line segments connected to the vertex are redrawn to reflect the new vertex position. When the LEFT mouse button is released, the vertex keeps its new position.
2. File menu button "Write" should write out a static file of the new geometry.
3. File menu button "Write Morph" should write out a dynamic file
which can be viewed in the slide
viewer program. This
morph scene should include a Tcl/Tk scale widget (a slider) that will
allow the user to morph from one geometry to the other.
This slider should control an interpolation variable t that varies between 0.0 and 1.0. Interpolation value t = 0.0 represents the first object, t = 1.0 represents the second object, and any value 0.0 < t < 1.0 represents an interpolated mix of the two objects. Depending on this t value, your program will draw an interpolated face where each corner is a linear combination of the positions of the corresponding vertices in the two objects. Thus if the position of vertex n in the first object is a, and in the second object is b, the interpolated values would be: t * b + (1 - t) * a.
4. Hitting the ESCAPE key exits the program.
Use your code from Assignment #1 to define a first SLIDE single polygon in the outline of a "car". Then use your new interactive polygon editor to distort this car into the shape of a "plane", -- keeping the same number of vertices. Output a SLIDE interpolation program on these two objects. Use the provided slide viewer to run your morphing file.
Follow the listed instructions for as2.
This code parses simple
SLIDE files like the ones made by the program in assignment 1. It
also builds a basic data structure, and outputs SLIDE.
You need to modify it to make the editor described above.
Details on which files you need to work on are in the file
as2/README
. There is also an example dynamic slide file
which demonstrates some of the tcl/tk constructs you will need. And
finally an example of the iterators you
need to traverse the data structure. There is also a basic Tcl intro online.
1. This second assignment must also be done individually.
2. Name your executable slideedit (i.e. Debug/slideedit.exe).
It should be named car_plane.slf.
Also keep around the two input files that contain definitions
of the car and plane objects.
3. Follow the listed instructions for as2.
This page was originally built by Jordan Smith.
Last modified: Saturday, 28-Aug-2004 15:12:37 PDT