What's the difference between homogeneous coordinates and projected coordinates?

973 Views Asked by At

I don't get how people are using homogeneous coordinates in order to construct the projection of an object. I know that homogeneous coordinates allow us to perform affine transformations in higher dimensions to make non-linear transformations linear. Is it the only purpose of homogeneous coordinates?

Consider the following picture

Object projection onto projection plane enter image description here

From the picture we can construct projection formulas in order to get projected points:

It is obvious that we can obtain $x_i$ and $y_i$, which are projected coordinates, just using simple triangle proportion calculations. This method does not require extra coordinate stuff unless we are interested in projection matrix construction which is non-linear transformation.

So, the main questions here are:

  • What is the main purpose of homogeneous coordinates apart making non-linear transformations linear?
  • Why we need points/lines at infinity if we can simply represent them as regular points/lines in order to obtain object projection (notice that I haven't used the concept of point's at infinity in order to obtain object projection)?
  • Why homogeneous coordinates are called projective coordinates if they just extend dimension and that's it?

Can you, please, point me where I'm wrong and where should I go further in order to get better understanding of what is projection and how homogeneous coordinates are used in pure projection geometry? Maybe give some problems that show how homogeneous coordinates are really used?

PS: I've red tons of topics here and in different books, but left unsatisfied with the answers

1

There are 1 best solutions below

7
On BEST ANSWER

You are quite correct that this sort of projection can often be calculated easily without using homogeneous coordinates. To project a point, you just need to intersect a line and a plane, which is easy using regular 3D coordinate geometry.

In my experience, the main benefit of homogeneous coordinates is that they remove special cases from geometric algorithms. If you compute the answer using homogeneous coordinates, then a line and a plane (almost) always intersect at a point, and two different planes always intersect in a line. Using homogeneous coordinates allows us to represent results that are "at infinity", so these no longer need to be treated as special cases.

In your projection example, you would have to deal with points at infinity if the center of projection (the eye point) was inside the object you're viewing. Viewing an object from the inside often happens in architectural applications, for example.

Representing projections and affine transformations using 4D coordinates and $4\times4$ matrices is useful because then it's easy to combine transformations (just by multiplying matrices). If you're programming, then using $4\times4$ matrices is a good idea because your graphics card probably has special hardware that handles them very efficiently. That doesn't explain why people started to use $4\times4$ matrices, but it does explain why people continue to use them.

This document might be useful.

There are a variety of answers here. One of them, from an experienced professional, suggests that it's best to avoid homogeneous coordinates. I somewhat agree. I definitely think they're over-used.