-------------------------------------------- student : bwallis graded by : Damian Isla time : Fri Nov 19 18:37:20 EST 1999 problem set: ivray -------------------------------------------- Eye ray generation (0-2): 2 Cone, cyl, poly isection (0-2): 1.5 Shadow (0-1): 0 Reflection (0-2): 1 Transmission (0-2): 1.5 Shading (0-2): 1 Supersampling and jittering (0-2): 0 Statistics (0-1): 1 Exactitude (0-1): 1 total (0-15): 9 -------------------------------------------- notes: Well there are some problems with your implementation, as I'm sure you know. It seems that you just didn't get to a lot of stuff. Plus, it crashes on most of our test examples. Here are some of the problems I found: For both Spheres and Cones, the normal that you compute is reversed. In cones there are other normal problems around the edges of the cones it seems. If you are having other problems with the program, this might be one cause. You have some problems with computing light directions. In the case of inifinite_lights, you set lightdirection to be light->directionWS when it should be the negative of that value. In the case of spotlights, you take it to be light->directionWS, which is wrong, since spot lights have a definite origin in the world. This value should be set to light->locationWS-hit.surfpWS. When you recurse in ReflectionRadiance and TransmissionRadiance, you should be scaling the weight down as you recurse. The idea is that we can stop recursing if the weight drops below a certain threshold, meaning that no matter what, that ray will not contribute significantly to the pixel being shaded. In ReflectionRadiance you also should be checking the reflectivity of the object. Right now, all objects are acting as 100% reflectors. No shadowing implemented No angular attenuation Specular Radiance is incorrectly calculated. No jitter/supersampling. ----------------------------------------