Programming Assignment 9: Advanced Texturing

by Mike Gleicher on October 28, 2015

Due: Thursday, November 5 (see the class late policy on the Syllabus)

Synopsis: You will add more advanced effects, such as advanced texturing, objects 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.

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: You will use the course handin system (put this in your handin directory within the P9 directory). Note: even though you’ve turned in P8, turn in P9 as a complete and separate project – that means uploading a copy of the whole thing (including the framework code). Make sure that you turn in all files needed for your program to run by testing that your program runs correctly from the web server. You must also use Canvas handin – give a link to your program, and in the type in box, describe the new effects that you’ve added (tell us what objects to look at).

Description

By now you should be familiar with the Graphics Town Project, last week you had the first part, adding a few object to the framework, and the second part, adding 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.

Here are some of the effects you might try (in rough order of complexity):

  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. Parallax mapping (relief mapping) – to make a surface look REALLY non-smooth
  6. Pre-Computed Environment map to make reflections / fancy lighting environment
  7. Dynamic Environment map to make reflections of the actual scene
  8. 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).

To get a “check” you have to try 2 of these. Doing more, or trying harder ones, will get you a better grade.

We will test your program by running it from the CS web server, so you can serve image files from there. However, we recommend that you pack the image files into strings using the methods we have given you – this will make development on your local machine easier.

For this week, your evaluation is mainly us checking off that you’ve done the advanced effects. The overall coolness of your town (fancy objects, nice designs, interesting behaviors, …) will help towards you grade – but we will evaluate that once at the end of the project. (When we get to P10).

Again, turn in your program in the P9 handin directory. Then put a list of what you did on Canvas.

Coming Attractions

We’ll have one more week of GraphicsTown – next week is a “add more coolness” week – add whatever you want!

Print Friendly, PDF & Email

Previous post:

Next post: