-------------------------------------------- student : fdabek graded by : Damian Isla time : Mon Nov 22 17:38:22 EST 1999 problem set: ivray -------------------------------------------- Eye ray generation (0-2): 2 Cone, cyl, poly isection (0-2): 1.5 Shadow (0-1): 1 Reflection (0-2): 2 Transmission (0-2): 1.5 Shading (0-2): 1 Supersampling and jittering (0-2): 1 Statistics (0-1): 1 Exactitude (0-1): 1 total (0-15): 12 -------------------------------------------- notes: Good job on a tough problem set. Here are some little problems I found: Cone intersection correct, but the calculation of the normal is off. Your calculation of transmission direction is just slightly off. In fact, you're just missing a minus sign (if you want to go back and take a look at it: you set your variable Idir to I.dirWS, when it should be -I.dirWS.) In your calculation of Transmission Radiance: you have to assume that when you are entering an object, you are entering it from vacuum (eta = 1.0) and when you are leaving it, you have to assume you are moving to TO vacuum. You have to pass these parameters to TransmissionDirection as appropriate. However, this was very unclear in the comments, so no points have been taken off you for it. Your calculation of the diffuse radiance is incorrect -- you have to component-wise scale the value you found (lightdirection.dot(normal)*obj->diffuse) by the color and intensity of the light -- the light color also matters! Also in your calculation of Specular radiance, the light color has to enter into your calculations. Also, you should use obj->shininess* in place of your constant 70 when calculating the highlight. Your jitter/supersampling code is not quite right. You can't just fire interface::supersamp rays at the center of each pixel. The point is to spread them out in a regular grid within that pixel. And likewise for jittering. Not every sub-pixel shoudl have the same jitter, but a random offset should be calculated for each one. --------------------------------------------