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
