Programming Assignment 4

Due 5:59PM on Tuesday, April 27


In this final assignment you will implement a rendering system. You can choose one of three options:
  1. Radiosity Rendering. Implement your choice of radiosity algorithm for quadrilateral models. Demonstrate your program on the standard Cornell Box and other models of your choice. Information relevant to this project is available in:

  2. Photon Mapping. Implement a photon mapping renderer for quadrilateral or triangular models. Demonstrate your program on the standard Cornell Box and other models of your choice. Information relevant to this project is available in:

  3. Non-photorealistic Rendering. Implement a non-photorealistic rendering system. Implement a system that can convert color computer graphics images and color digital photos to artistic renderings using one of algorithms described in:

    Demonstrate your program on 4 input images of your choice.



Submitting Your Report

By the deadline, send the URL for your report WWW page to the grader: Bill Mullally

What You Turn In

Create an HTML document "p4.html" that describes your project. In the first part of the report, describe the algorithms used in your rendering implementation.  Give an overview of how your program is structured, and provide a module diagram. Be sure to describe the algortihms employed in sufficient detail for someone else to implement your system. Be sure to discuss the assumptions and weaknesses of the particular technique employed. How does your program fail and why? Discuss the strengths and weaknesses of the methods you implemented, and how you would improve the program if you had more time. Please comment on issues of computational complexity vs. accuracy of algorithm employed.

Include output images from your system.

Include at least four images showing results obtained with your system.  

Finally, include your source files, program executable, and Makefile. Please be sure to tell us what computer platform (e.g., Windows, Linux, Solaris) your tool runs on.

The report you write should be clear and to the point. The code you submit should be well-structured and clearly documented.