Ortho Cameras

Linas Vepstas (linas@innerdoor.austin.ibm.com)
Tue, 11 Oct 1994 16:40:39 -0500

Gavin Bell wrote a while ago:

> That's two votes for it (one of the members of the Inventor group felt
> it was important, too). Implementing the rendering of orthographic
> scenes is trivial. Implementing user interface that can deal with
> either orthographic or perspective scenes is the hard part. Anybody
> want to vote against orthographic cameras?

What's hard? What am I missing? You can implement both cameras so that
both have an up vector, a screen normal, a camera location, a look-at
point, a screen width & height. If you are coding in C++, you create
a base class that implements members for each of the above, and derive
both ortho and perspective from that class. The GUI manipulates the
base class. Visually, there's not that much of a differnce ...

If you base culling on the NDC volume, I don't see that there is
any difference there either.

Am I missing something deeper?


I looked again at Inventor camera. The Inventor perspective
camera "height angle" appears to be equal to

height_angle = arctan ( 0.5 * screen_height / dist)

where dist is the distance between the camera location and the
lookat point.

I suggest replacing the height-angle with a screen height & width.
This way, you can have a unified description for ortho & perspective,
and similarly, a unified camera UI. I guess a 3D lookat point
would be needed too, but that's OK -- both human and machine
will probably have to conceptualize a look-at point somehow, anyway --
may as well put it into the camera.