From a conversation with thebolt:
- first step would be to actually have a perspective transform there instead of just having a fov and assume normal "straight" perspective
- but this also reults in taht csFrustum cannot actually represent the frustum.. and that the cullers for example need to handle any-shaped frustum (including a box.. aka orthogonal projection)
- replace the frustum with a general set of planes, provided by the camera
- either have a csPerspectiveCamera, csOrthoCamera and so on to generate the planes, or derive the clip planes from the projection matrix - but "its not terribly cheap though so you shouldn't do it too often"
- the "common camera" should be generic and display the differences via different camera transform (& returned clipplanes)
- have helpers to build a perspective transform or an ortho transform (4x4 matrix) from "easy to know values"
- but e.g. an iProjectionCamera to query the FOV the cam was created with. similar for ortho projections
