debug pixel: x = 350; y = 230 cast ray: end = 0 1 4; dir = 0.0665761 -0.262063 -0.962752 intersect test with obj[0]->B: hits = { {obj[0]->B, 2.18881, false}, {obj[0]->B, 4.11183, true} } intersect test with obj[0]->A: hits = { {obj[0]->A, 3.15529, false}, {obj[0]->A, 5.07085, true} } intersect test with obj[0]: hits = { {obj[0]->B, 4.11183, true}, {obj[0]->A, 5.07085, true} } closest intersection: return = obj[0]; hit = {obj[0]->B, 4.11183, true} call Shade_Surface with: location = 0.273749 -0.0775576 0.0413311; normal = -0.273749 0.0775576 0.958669 ambient = 0.3 0 0 intersect test with obj[0]->B: hits = { {obj[0]->B, 0, false}, {obj[0]->B, 1.00181, true} } intersect test with obj[0]->A: hits = { {obj[0]->A, 0, false}, {obj[0]->A, 1.09783, true} } intersect test with obj[0]: hits = { {obj[0]->B, 1.00181, true}, {obj[0]->A, 1.09783, true} } closest intersection: return = obj[0]; hit = {obj[0]->B, 1.00181, true} light 0 not visible; obscured by object obj[0] at location -0.0109504 0.808635 0.411791 intersect test with obj[0]->B: hits = { {obj[0]->B, 0, false}, {obj[0]->B, 3.9968e-15, true} } intersect test with obj[0]->A: hits = { {obj[0]->A, 0, false}, {obj[0]->A, 0.923605, true} } intersect test with obj[0]: hits = { {obj[0]->B, 3.9968e-15, true}, {obj[0]->A, 0.923605, true} } closest intersection: return = obj[0]; hit = {obj[0]->A, 0.923605, true} light 1 not visible; obscured by object obj[0] at location 0.660154 0.64211 -0.389732