bvisness
I don't have a nice visual for that unfortunately; maybe someone else knows of a good one
Actually, there hasn't been one, until a few days ago when I finished mine :)
I go over the whole spill of
projective space and
projective coordinate system (a.k.a: "Homogeneous")
BTW, calling 4D vectors and matrices "Homogeneous" when used only for translation, is technically incorrect:
Ther'e absolutely no need there to invoke the term "Homogenous" which is just a common synonim for "projective", because it's
not actually a projective space at all, and "Homogeneouse Normalization" doesn't even apply there.
You don't need any projective space at all to do translation by shearing - it happens in completely standard Euclidian space with Cartesian coordinate system (as opposed to Projective/Homogeneous).
It just happens to have 4 dimentions because the shear has to happen in one dimension higher.
longtran2904
Why do most of the game industry use a 4d homogenous coordinate system? Why don't we just use a 3d vector
For perspective projection though, there you DO need a Projective space and coordinate system (Homogeneous), and most of my video covers exactly how that looks like geometrically, and how the matrices naturally fall out of that process.
Conceptually you can consider the perspective projection process as involving 2 separate transformations of 2 kinds:
You could conceptualize the first as happening in a standard 4D Euclidian space with a standard 4D Cartesian coordinate system, involving a composite of multiple
purely-linear transformations (which I detail in my video).
You can then conceptualize taking the resulting 4D Euclidian vectors you get out of that, and re-interpreting them "as-if" they were projective coordinates (Homogeneouse). In a sense, super-imposing a projective-space onto a Euclidian space, where the 4D Cartisian coordinate system is superimposed over the 4D Projective (Homogeneouse) coordinate system, so they match up.
Then do the homogeneouse-(re)normalization (a.k.a: "The Perspective Divide"), then re-interpret the result back as 4D Cartesian coordinates, and then slice/sub-space it taking only the first 3 dimensions.
That's just an alternative conceptualization though, arithmetically it's the same as just doing it all in just projective space.
It can be thought of as representing 3D space as a "slice" of 4D space (just like 2D space would be a "slice" of 3D space).
So you get:
1) Re-interpret 3D space a a slice of 4D space.
2) Situating that 3D-slice in 4D space at level-1 of the 4th dimension (creating a 4D vector out of the 3D one, with w=1).
3) Do all the linear transformations there.
4) Re-interpret the result as "projective".
5) Re-normalize projectively (homogeneousely).
6) Re-interpret the result back as Euclidian 4D.
7) Slice it back to 3D by ignoring the 4th dimension (creating a 3D vector out of the 4D one, dropping the w coordinate).
E-voila(!)
You've applied perspective projection
in 3D by going up to 4D and then down again.
It's just like with translation-by-shearing, only with an added step of reinterpreting as projective for a little while for projective-normaliztion, then back to Euclidian again (which
doesn't actually happen with translation-by-shearing, despite the common missconception).