COM1370 Project Topics - Spring 2003 - Prof. Futrelle
Version of 25 March 2003
The general procedures as to how
to proceed with each project, when what to hand in and in what
form, can be found in the
general project document
as well as the
detailed explanation
of how you'll choose
your projects, set up your on-line reports, etc.
- #101. Scan conversion for triangles
- Implement the efficient scan conversion algorithm of Sec. 3.6.3 for
general polygons. Work on the special cases also.
In addition fill with a texture. Also scan convert
rotated and translated copies of the polygon, altering the edge
table ordering accordingly.
- #102. Phong and Warn shading
- Do Phong and Warn shading for a single light source and simple,
3D polyhedron. Do for a rotated copy too, that will have a
different angular relation to the light source.
- #103. 2D line and polygon clipping
- Develop your own clipping routines to your own "window" within
a system-drawn window. Explore at least two distinct algorithms.
Show that the clipping works, by translating and rotating the
lines and polygon. Fill the clipped polygons using the built-in
procedures.
- #104. Bézier fonts
- Interactively design and draw some characters with curved boundaries and holes,
and fill. (Use built-in Java 2D fill.)
Create italicized versions using a shearing transform.
Also rotate the characters 90°.
Create at least three distinct characters, each in two "font styles".
- #105. Hierarchical transforms
- Implement 2D hierarchical structures so that when a containing
shape at some point in the hierarchy is transformed,
the contained shapes are too, e.g., rotations,
translations, scaling. That is, the transforms are propagated down
the hierarchy.
- #106. 3D objects
- Display 3D objects as wire frames and filled. Can do hidden
surface decisions using backface detection as objects are rotated
in space to discrete positions.
Use both triangular and quadrilateral facets.
- #107. Transforms library
- Build and document a library or 2D or 3D transforms that
anybody could use. Create a carefully described API using Javadoc.
Apply the library to some 3D triangular wire frame facets.
- #108. Perspective views
- In 3D, of course. Construct a static wire frame object.
Show camera views from various angles, distances
and magnifications.
- #109. Hidden surface removal
- Create a system that can deal with convex polyhedra that can occlude
one another. Use built-in filled poly calls. Create a scene with at least
two such polyhedra. Show how occlusion changes when one object is
transformed.
- #110. Build your own windowing system
- Build a system to show at least two overlapping
windows with line graphics, including window selection, shrink to
icon, window dragging. Transform the collections of lines.
(Do simplest line clipping.) The entire system can be "simulated"
by drawing in a containing window.
- #111. "Master objects"
- Build a system that allows a user to select and place
copies of objects, e.g., pieces of furniture.
Placement should also allow rotation through multiples of 90°.
- #112. Engineering drawing
- Display three wireframe views of the same object, using a single
underlying representation and transforms.
- #114. Exploded views
- Show exploded view of an object, including light lines
connecting to original position, e.g., a table with four legs.
Allow user to vary explosion amount from zero on up.
- #114. Create your own menus
- Using a window within a window, create menus that do
something such as change colors, shapes or positions of objects.
Do not use the built-in menu facilities of Swing.
At least one menu item should trigger a rotation, translation
action.
- #115. Depth cueing
- Using a fixed 3D scene, shade to reduce contrast with
increasing depth. Use transforms to "shrink" objects farther
away as a simple approximation of perspective.
- #116. Ray tracing
- Use at least two reflecting spheres and textured surfaces
on the boundaries
of the volume holding the spheres.
- #117. Multiple illumination sources
- Uniform shading of built-in polygons. Show how the illumination
changes as the objects are translated and/or rotated and
as the light sources are moved.
Go to COM1370 home page
Return to Prof. Futrelle's home page