Programming Assignment #9: GraphicsTown conclusion

by Eftychios Sifakis on May 3, 2016

Due: Sunday, May 8th (see the class late policy on the Syllabus)

Synopsis: You will add more advanced effects, such as advanced texturing and motion,  to your GraphicsTown project in order to try out the ideas discussed in class.

Learning Objectives:
The goal of this project is to give you experience creating implementing more advanced visual effects using interactive graphics tricks, and demonstrate your understanding of using parametric curves to animate objects in a scene.

Evaluation: We will grade check/no check for turning a working version of the graphics town project that shows off the minimum required new features. We will give extra points for doing more than the minimum, or for creating particularly interesting things in the basic assignment.

Handin: Canvas link.


By now you should be familiar with the Graphics Town Project, as in the past weeks you have been adding more interesting objects and textures. This week you will continue to add things – just this time, they’ll be fancier things.

Technically, you can add effects to the objects that you made last week – but the idea is that you keep adding more and more stuff so that the project becomes more and more interesting.

The first type of add-ons includes interactive graphics tricks to enrich the appearance of your models. Those include:

  1. Skybox
  2. Projector textures / Light Maps
  3. Decal texture (using multi-texture)
  4. Bump mapping (normal mapping) to make a surface look “non-smooth”
  5. Pre-Computed Environment map to make reflections / fancy lighting environment
  6. Dynamic Environment map to make reflections of the actual scene
  7. Shadow maps (and other tricks to make shadows)

The last two (dynamic environment maps and shadow maps) require implementing multi-pass – which will be tricky given the graphics town framework. But if you pull it off, you will be rewarded. But it will be hard. Really hard.

Doing environment maps with a pre-rendered environment (like a skybox) is a much more reasonable thing to try. If you choose to do a skybox, make sure you do it correctly (a box that moves with the camera, rather than one that is just far away).

The second type of add-ons deals with motion effects. For this, you will be asked to demonstrate your understanding of piecewise polynomial curves, utilized to generate motion of elements of your world along specified trajectories. The acceptable type of motion will need to fulfill the following requirements:

  • You must include a motion that “goes around”, in a closed trajectory. This could be a train-like object that moves around in a track, or a plane-like object that follows around a trajectory.
  • You need to incorporate a piecewise polynomial curve into your trajectory. It must include more than one “pieces”. And, at least one of the pieces (ideally all) must be cubic curves, of the type we have discussed in class.
  • You must use arc-length parameterization, to have your object move along the trajectory with constant velocity. You are free to include switches to turn this feature on or off.
  • The parametric curve must control both the position and orientation of an object. Set up your scene so that the change in both position and orientation can be visually appreciated.

In order to go “above and beyond” relative to motion effects, you can consider the following (not a conclusive list, just a few examples)

  • Create more complex motions. For example, you can have a hierarchically modeled car, with wheels rotating as it moves along its trajectory.
  • Create user controls so that the trajectory of your moving objects can be altered.
  • Mount a “headlight” on one of your moving objects, which can affect the illumination of your scene.

To get a “check” you have to show two add-ons from any of the above categories. For example, you can (a) implement two(2) advanced interactive appearance effects from the first category or, (b) implement one advanced appearance effect and a motion effect.

If you implement more than the required add-ons (or if you implement them with a notable degree of sophistication) you will be rewarded accordingly in your project score.


Print Friendly, PDF & Email

Previous post:

Next post: