debug pixel: x = 350; y = 250 cast ray: end = 0 1 4; dir = 0.0665729 -0.219699 -0.973293 intersect test with obj[0]->A: hits = { {obj[0]->A, 3.12556, false}, {obj[0]->A, 4.87915, true} } intersect test with obj[0]: hits = { {obj[0]->A, 3.12556, false}, {obj[0]->A, 4.87915, true} } intersect test with obj[1]: hits = { {obj[1], 3.12084, false}, {obj[1], 4.88654, true} } closest intersection: return = obj[1]; hit = {obj[1], 3.12084, false} call Shade_Surface with: location = 0.207763 0.314354 0.96251; normal = 0.197763 -0.185646 0.96251 ambient = 0.3 0 0 intersect test with obj[0]->A: hits = { } intersect test with obj[0]: hits = { } intersect test with obj[1]: hits = { {obj[1], 0, false}, {obj[1], 2.8727e-15, true} } closest intersection: none light 0 visible; no object on ray. shading for light 0: diffuse = 0.00572571 0 0; specular = 0 0 0 intersect test with obj[0]->A: hits = { {obj[0]->A, 0.00691291, false}, {obj[0]->A, 1.20217, true} } intersect test with obj[0]: hits = { {obj[0]->A, 0.00691291, false}, {obj[0]->A, 1.20217, true} } intersect test with obj[1]: hits = { {obj[1], 0, false}, {obj[1], 1.22565, true} } closest intersection: return = obj[0]; hit = {obj[0]->A, 0.00691291, false} light 1 not visible; obscured by object obj[0] at location 0.210626 0.319158 0.958447 final color 0.305726 0 0