I think there's something wrong with my camera implementation as I've tried messing with the Translation tranformation and anything above 1 on the Z axis causes things to disappear. Any help would be much appreciated!
All tests are passing, just the world renders nothing. I've confirmed that rendering a unit sphere appears, and I can shift the axes slightly:
This is the output from the following world:
val world = World( List(Sphere()), Some(light) )
After some investigation, it looks like the Translation transformation is behaving too "strongly". That is, having a Translation(0, 0.5, 0) on a Sphere, I needed to move the camera way back and look up a lot: ViewTransform(Point(0, 5, -15), Point(0, 5, 0), SceneVector(0, 1, 0)). Back 15 and looking up 5.