Perspective Rendering Info

Duckman 101 Dec 01, 2003 at 20:26

I am creating a program that analyzes simple 3D geometry based on a
picture captured by a camera. I know that 3-point perspective issues
might create problems, but I am only working in one plane (fixed

My setup is that I have a cube and a camera. The cube is fixed, but
the camera has pan and tilt capabilities. Assume that the camera is
located directly behind and vertically above the center of the cube.
When the pan is zero, and the tilt is negative (tilt down) the FOV is
directly behind the cube, horizontal edges of the cube appear
horizontal in my picture, vertical lines appear vertical, and depth
lines appear to converge at the vanishing point. However, if I pan
the camera theta degrees, then the horizontal edges of the cube will
no longer be horizontal, and the depth lines vanish at a differnt

At first I thought that the pan angle of the camera would equal the
inclination of cube edges, but from my pictures this is not the
case. I am not sure if this is due to perspective issues or other

I don’t quite understand why the edges are tilted in the first
place…I am thinking that if the tilt of the camera was zero(ie.
the cube was at the same height as the camera, then panning should
have no effect on the orientation of horizontal edges (effectively
giving 2point perspective)…only because of the downwards tilt of
the camera do i run into this problem…am i correct in this theory?

So given the location of the cube relative to the camera, and the
orientation of the camera relative to the cube, is it possible to
predict the angle at which horizontal and depth edges will appear in
my pictures?

OpenGL probably has code that already does this, but I’m trying to recode from first principles


1 Reply

Please log in or register to post a reply.

anubis 101 Dec 02, 2003 at 11:29

i’m impressed… somebody who describes his problem properly :)
let me ponder about it… it’s lunchtime here right now and i won’t be back before 7 ( CET ) so don’t expect anything from me before then.