debug pixel: x = 380; y = 250 cast ray: end = 0 1 6; dir = 0.131204 -0.140474 -0.981352 intersect test with obj[0]: hits = { {obj[0], 21.3563, false} } intersect test with obj[1]: hits = { {obj[1], 5.72043, false}, {obj[1], 6.59916, true} } intersect test with obj[2]: hits = { } closest intersection: return = obj[1]; hit = {obj[1], 5.72043, false} call Shade_Surface with: location = 0.750543 0.196431 0.386246; normal = -0.498915 0.392861 0.772492 ambient = 0 0 0 intersect test with obj[0]: hits = { } intersect test with obj[1]: hits = { {obj[1], 0, false}, {obj[1], 1.03251e-14, true} } intersect test with obj[2]: hits = { } closest intersection: none light 0 visible; no object on ray. shading for light 0: diffuse = 0.256392 0 0; specular = 1.5535e-08 1.5535e-08 1.5535e-08 intersect test with obj[0]: hits = { } intersect test with obj[1]: hits = { {obj[1], 0, false}, {obj[1], 9.32587e-15, true} } intersect test with obj[2]: hits = { {obj[2], 0.668742, false}, {obj[2], 1.0895, true} } closest intersection: return = obj[2]; hit = {obj[2], 0.668742, false} light 1 not visible; obscured by object obj[2] at location 0.330984 0.355718 0.882042 intersect test with obj[0]: hits = { {obj[0], 4.46884, false} } intersect test with obj[1]: hits = { {obj[1], 0, false}, {obj[1], 1.7264e-14, true} } intersect test with obj[2]: hits = { } closest intersection: return = obj[0]; hit = {obj[0], 4.46884, false} light 2 not visible; obscured by object obj[0] at location 0.234806 -2 4.24374