Original Post
I'm having a hard time understanding perspective projection. I understand the basic idea and the derivation using right triangles, but it seems like that derivation assumes that: 1) The FOV is 90. 2) The aspect ratio is 1:1. What if I want to allow for other FOVs and aspect ratios? Also, the perspective transform transforms the frustum into a cuboid. How is this done? As I understand, one reason for doing this is to make 3D clipping trivial, but I also read somewhere that it "transforms" the perspective projection into an orthographic projection because it is more efficient and this can be exploited by the hardware. How does this work? Finally, it also places the near and far clipping planes at 0 and 1 or -1 and 1 (depending on the API). I think this is to help with Z-buffer precision, but I don't understand how this makes it any better. If anyone can explain even some of these things, or point me to some links, I would really appreciate it. Thanks in advance.
