In the final homework project you will need to implement some of the advanced rendering effects and modeling techniques discussed in class, which have not previously been covered in other homework projects, and show demonstrate them in an interesting interactive application. We provide a list of suggestions for topics, but you are free to choose what kind of scene and effects you want to implement, as long as you clear it with the instructor. We will evaluate your project based on technical and artistic merits.
The final project is due at 2pm on Friday, December 3rd and has to be demonstrated in CSE room 4140 to a panel consisting of the instructor, TAs and tutors who will decide on the grade. Late submissions will not be permitted. There are three requirements in order to receive the full 110 points achievable for this project: summary, web page, and demonstration.
There will be no homework introduction for this project, given its open nature. But the instructor will summarize the concept in class on Tuesday, November 16th.
By Friday, November 19th at 4pm you need to send a short summary (about 300 words) of your planned project to the instructor via email. This summary must include:
The instructor will respond to your proposal within three days with an assessment of whether or not the project is acceptable as described and will achieve full points if fully implemented. The instructor will let you know if he thinks that the project is overly ambitious and in this case will suggest things to cut in order to make the implementation feasible within the allotted time frame.
You will need to present your project on December 3rd between 2pm and 4pm. The venue has not been finalized yet and will be announced here and in class. We will provide Windows and Linux PCs to run the application on, and will also have a VGA connector to plug in your own laptop. If your laptop does not have a built-in VGA connector, please make sure that you bring an adapter. You can choose to run your application on the instructor's laptop. It runs Windows XP (32-bit) and has an Nvidia Quadro 1600M graphics card which should satisfy all your shader requirements. Please bring your Windows executable and all required data on a USB flash drive if you want to use this laptop. Guests are welcome at this presentation session.
You must work on this project in teams of two or three students.
We provide a list of suggested themes and techniques below, but you may implement any other ideas that you find interesting, as long as you clear them with the instructor or the TAs. We expect that you implement at least 10 skill points worth of advanced rendering features per person on the team; each feature on the list below has a specific skill point value, based on their difficulty to implement. A team of two needs to implement at least 20 skill points worth of features, a team of three needs to implement 30 skill points.) Make sure to spend some time on an interesting theme and story for your demonstration and on creating a nice scene to show off your rendering effects.
Your overall score will consist of two parts: 70% are for the technical quality of the implemented effects, 30% are for the artistic quality. The grading will be based on your presentation. Each team will have 60 seconds per team member for the presentation, during which you should verbally explain to the audience what your story is and what rendering effects you have implemented, while you demonstrate them on the computer. For some rendering effects, you will need to implement a keyboard toggle to turn them on or off; this is mentioned in the list below. We recommend that the speaker does not also operate the computer.
Your application needs to run in full screen mode (-5 points if not).
For artistic quality we look at a cohesive theme and story, but also things like nice 3D models (downloading models from the internet or designing them with a 3D modeling tool is encouraged), nice textures (consider taking digital photographs and converting them to textures), the choice of colors and materials, the positioning of camera and lights, user interaction, etc.
This project must be implemented in C++ using OpenGL, just like the other homework projects. We encourage you to re-use the code you wrote for the earlier projects. You are permitted to use code from books and on-line sources, as long as you can explain every line of code if we ask you to. Third party programming libraries are generally not acceptable, unless cleared by the instructor.
Ideas for themes:
Suggested technical features:
In order to receive extra credit, you need to create a web page about your project. At a minimum it needs to include a description of your project (min. 300 words), and at least one screen shot. We suggest that you explain the plot, the game play, and the supported keyboard and mouse commands. You can use the proposal text as a basis, but you need to update it so that it reflects what you actually implemented. The web page has to be emailed to the instructor by Thursday, December 2nd at 11:59pm. You can send the content of your web page in one of two ways: 1) send the description as ASCII text in the email and attach your screen shot(s) as image files (JPEG, TIFF, GIF, PNG); 2) ZIP/tar up your web page directory tree including your HTML file(s) and your images.
Unless you instruct us otherwise, these web pages will be linked to by the course web site, along with the names of the team members, similar to last year's project page.