Lets us multiply by {x,y,z,1} to get {x,y,z,z/d} and since we can set w to d/z. What the process is doing is rendering a 3d point/vector onto a 2d screen where the 1st and 2nd entries are the length and width and the 3rd entry is the "depth" (which doesn't explicitly change what you see)
0-0-00-0
@danielhsu021202 If M has an all-zero final row, then the last element of q⃗ we get will be 0. The d1 term basically multiplies the third element z by d1 and puts the result in the last element of q; because these are homogeneous coordinates, it creates the effect of linearly scaling the point (x,y,z,1)T so that the z coordinate becomes d.
What does the 1/d term do?
Lets us multiply by {x,y,z,1} to get {x,y,z,z/d} and since we can set w to d/z. What the process is doing is rendering a 3d point/vector onto a 2d screen where the 1st and 2nd entries are the length and width and the 3rd entry is the "depth" (which doesn't explicitly change what you see)
@danielhsu021202 If M has an all-zero final row, then the last element of q⃗ we get will be 0. The d1 term basically multiplies the third element z by d1 and puts the result in the last element of q; because these are homogeneous coordinates, it creates the effect of linearly scaling the point (x,y,z,1)T so that the z coordinate becomes d.