This is a really strange bug that I haven't been able to solve. All tests pass, and I'm just done with shadows, cameras and patterns. (Haven't started the reflection/refraction part yet).
However, I find that whenver I add a floor or a wall (be it a Plane or a squashed Sphere), I get some kind of copy of it hovering at the opposite axis and eclipsing all objects no matter where they are.
The best way to show you what I mean is attaching the images.
This is the original image, 4 spheres:
Then I add a floor and this weird eclipsing ceiling appears:
Then I add a wall on the left and you can see how far on the right there's a weird dark banner:
Then if I add a right wall quite in front, you can see how the correctly rendered portion of the image shrinks even more:
Any hints on what could be causing this? As I mentioned, all tests are passing and I can't figure out where the problem is.
That really is odd! Is there anywhere I could look at your code? At the very least, the ray-plane intersection code, but it'd be nice to see the whole stack--ray/world, ray/shape, ray/plane.
Edit: I just saw where you said it happens with any shape, even squashed spheres. Can you try this experiment? Using a sphere, at what point does it start to produce odd effects? How squashed/stretched does it need to be? Because it seems to be fine with the spheres you started with; there must be something else going on, perhaps when a shape extends beyond some point in the scene?