I'm making a simple 3D renderer, and I've decided that the XY coordinate of a point on the screen should be proportional to the vertical and horizontal angle between the corresponding point in space and the camera.

In more concrete terms: The camera sits at the origin and it's looking in the positive Z direction. Let's call ZX the horizontal, and ZY the vertical plane. The horizontal angle is the angle between the position vector p and the vertical plane, and the vertical angle is the angle between p and the horizontal plane.

Specifically the calculation is: Project(x,y,z)=( atan(x/sqrt(y\^2+z\^2)), atan(y/sqrt(x\^2+z\^2)) )

I like this idea because all 3D directions, including those behind the camera, get mapped to the screen as opposed to perspective projection for example. Also I think (and see) that the relative angle between the camera and an object doesn't affect it's projected shape (think about maxing out the FOV in a game. Things near the edge of the screen get really stretched).

The major downside is that straight lines get mapped to curved shapes (I'd wager they're hyperbolae).

I'd much appreciate if someone could tell me the name of this projection.