Spring 2009 CSG140 Computer Graphics
In this assignment, you will add reflection and transparency to your ray tracing program.
- Continue to develop the ray tracing program you started in the last assignment. Your scenes will again consist of a few spheres with each sphere is given by its center (x, y, z), its radius, its color (R, G, B), and its coefficients: ka, kd, ks, kt (ambient, diffuse, specular, transmitting). Your scenes should include:
- At least one scene with two or more reflective spheres showing higher order reflection.
- At least one scene with transparent bubble.
- At least one scene with a solid transparent sphere.
Here are the stages for developing your program. You may choose to do them in a different order.
- Make your program recursive (See "recursive ray tracing" in your text). Until you add reflection or transparency, there will be no recursive calls.
- Add reflection and get it working properly. Make sure that your scene has at least one reflective sphere and that other spheres are placed where the viewer will see their reflections.
- Place a second reflective sphere in your scene and call on recursion (level 2, 3 or higher) so that reflections in reflections are visible.
- Add a bubble (non-refractive transparent sphere).
- Add a solid, refractive transparent sphere.
See Building a Ray Tracer - Page Two and
Building a Ray Tracer - Page Three for sample images. Note that the small images on that page are links to larger images.
By midnight Thursday, February 12, 2009.
The usual grading guidelines apply for late work.
For the performance parts of this program:
Code, comments, ease of use - 30 points
- first order reflection of objects - 20 points
- higher order reflection - 10 points
- transparency without refraction - 15 points
- transparency with refraction - 15 points
- quality of the image(s) - 10 points
- Feel free to copy the images in my raytracing pages to check your work but please create your own images to turn in.
- your source code. Your code should be well organized and commented.
- a makefile, if necessary.
- a README file containing:
- your name, the date, and the assignment number
- a list of the files in the folder with comment for each explaining its purpose
- instructions on how to run your program
- a description of any bug that you have not been able to fix. A documented bug will not cost you as much as an undocumented one.
- You may include data files for up to three scenes.
- Please do NOT email ppm files, jar files, or executable code. I will generate them from your source code.
College of Computer Science, Northeastern University
360 Huntington Avenue #161CN,
Boston, MA 02115
Phone: (617) 373-2198 / Fax: (617) 373-5121
The URL for this document is: