Selection in 3D Graphics Environments
Christine Albert and Lindsey Press

World Space

Camera Space

Clip-Volume Space

Image Source: modified from http://www.ntu.edu.sg/home/ehchua/programming/opengl/cg_basicstheory.html

Perspective Projection

This week, we focused on two different points in the pictures above: the right corner of the box that the flower is resting on and the left arm of the person standing next to it. These points are indicated by the red dots in the picture. In order to move these points from world space to camera space to perspective projection, we needed to take the initial verticies in world space and multiply them by the T(-eye) matrix in order to get the coordinates in camera space. In these cases, we used the gluLookAt coordinates of ((8, 0, 10), (0, 0, 0), (0, 1, 0)) to obtain the T(-eye) matrix shown below. As you can see in the camera space image, we are seeing a rotated view of the image, but it still appears unrealistic. From this step, we took the new matrix and adjusted it's perspective by gluPerspective(60, 1, 10, 30). By doing this, we obtained a much more realistic version of the graphics scene. Shown below are the formulas for T(-eye) and T(projection), and the results obtained from our calculations.

The following are the formulas for moving from world space to camera space, and for moving from camera space to perspective projecion.

The following calculations show the results obtained for moving the point of the hand and the corner of the box from world space to camera space to perspective projection.




Resources:

http://unspecified.wordpress.com/2012/06/21/calculating-the-gluperspective-matrix-and-other-opengl-matrix-maths/

http://www.ntu.edu.sg/home/ehchua/programming/opengl/cg_basicstheory.html