Computer Science 155: Graphics
Fall 2000
Homework 6
In the final assignment, you will construct a floor in 3D space with one overhead
light. On the floor you'll build a roller coaster using parametric curves, a billboard
that is texure mapped, and several semi-transparent objects. All objects in your world
should cast shadows. This assignment is worth 150 points.
- (10 points) The floor should be tiled to achieve better lighting effects. The user should
be able to rotate the floor about its center in the x-z plane in order
to view your world from different perspectives.
- (60 points) The roller coaster track should be constructed using parametric curves.
Rather than using Bezier curves, you should derive a cubic curve based on
the first and last endpoints, p(0) and p(1), as well as the first and second
derivatives at the first point, p'(0) and p''(0).
Piece a few of these curves together (perhaps 3 curves) to make
a smooth roller coaster track. This will take just a bit of
calculation to work out. (Note that although these curves only
allow you to specify the first and second derivatives at the starting
point, you can easily compute the first and second derivatives at
the ending point. You can then use these values for specifying the
next curve.)
Your program should draw a piecewise linear approximation
of the track.
The user should be able to take a roller coaster ride. To do this you should position
the viewpoint on (or slightly above) the track with
the center of attention vector tangent to the curve.
- (20 points) Add a couple of semi-translucent object by using blending.
Use the trick from
class to make sure that semi-translucent objects don't obscure
opaque objects (using read-only mode for the z-buffer).
- (30 points)
Add a rectangular billboard and texture-map a design onto the billboard.
- (30 points) Finally, add shadows. Specifically, have a light
source positioned someplace well above the floor. Compute shadows
with respect to this light source for each object in the scene.