Skip to main content

Need of perspective projection

Short answer

Perspective projection gives realistic depth by making distant objects smaller and creating vanishing points. World-to-viewing transformation: define camera axes n, u, v; translate camera to origin; rotate to align axes with world axes using matrix M = R·T with rows u, v, n and translation -(u·R0, v·R0, n·R0).

Why do we need perspective projection in 3D environment? Explain transformation from world to viewing coordinates.

Need for perspective projection

Parallel projection keeps sizes equal whatever the distance, so the picture looks unnatural. Perspective projection projects points along lines meeting at the centre of projection (the eye), so:

  • distant objects look smaller (perspective foreshortening), as seen by the human eye or a camera;
  • parallel lines meet at vanishing points, giving depth;
  • it gives realistic images, needed in games, animation, architecture and flight simulators.

Its drawbacks are that true sizes and angles are not preserved.

World to viewing coordinates

The scene is given in world coordinates, but projection is easier in a coordinate system fixed to the viewer.

  1. Choose the view reference point R0, the view-plane normal N and the view-up vector V.
  2. Compute unit vectors: n = N/|N|, u = (V × N)/|V × N|, v = n × u.
  3. Translate R0 to the origin with T(−x0, −y0, −z0).
  4. Rotate so that u, v, n become the x, y, z axes.
M = R · T = | u1 u2 u3 -(u·R0) |
            | v1 v2 v3 -(v·R0) |
            | n1 n2 n3 -(n·R0) |
            | 0  0  0   1      |

P_viewing = M · P_world. The projection then works on P_viewing.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computer Graphics chapter 4 questions →