Original Post
Hi,
I set up a view.
The modelview matrix is the identity matrix:[source]1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1[/source]
The projection matrix is 45 degrees, near 0.1, far 100.0, resulting in a matrix:[source]1.8107 0.0000 0.0000 0.0000
0.0000 2.4142 0.0000 0.0000
0.0000 0.0000 -1.0020 -0.2002
0.0000 0.0000 -1.0000 0.0000[/source]
By the documentation on gluUnproject, I multiply (MV*P)[sup]-1[/sup] by a normalized device coordinate to get an object coordinate. Because in my case, MV is I, that means that MV*P = P, and (MV*P)[sup]-1[/sup] = P[sup]-1[/sup]. Matrix P[sup]-1[/sup] is:[source]0.5523 0.0000 0.0000 0.0000
0.0000 0.4142 0.0000 0.0000
0.0000 0.0000 0.0000 -1.0000
0.0000 0.0000 -4.9950 5.0050[/source]
Now, this is a problem. In the next step, the normalized device coordinate is multiplied by this matrix to get the object coordinate. However, notice that any Z value in the NDC will always be zero, because index 2,2 of this matrix, (MV*P)[sup]-1[/sup], is zero! Clearly, something is going wrong. Help?
Thanks,
-G
I set up a view.
The modelview matrix is the identity matrix:[source]1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1[/source]
The projection matrix is 45 degrees, near 0.1, far 100.0, resulting in a matrix:[source]1.8107 0.0000 0.0000 0.0000
0.0000 2.4142 0.0000 0.0000
0.0000 0.0000 -1.0020 -0.2002
0.0000 0.0000 -1.0000 0.0000[/source]
By the documentation on gluUnproject, I multiply (MV*P)[sup]-1[/sup] by a normalized device coordinate to get an object coordinate. Because in my case, MV is I, that means that MV*P = P, and (MV*P)[sup]-1[/sup] = P[sup]-1[/sup]. Matrix P[sup]-1[/sup] is:[source]0.5523 0.0000 0.0000 0.0000
0.0000 0.4142 0.0000 0.0000
0.0000 0.0000 0.0000 -1.0000
0.0000 0.0000 -4.9950 5.0050[/source]
Now, this is a problem. In the next step, the normalized device coordinate is multiplied by this matrix to get the object coordinate. However, notice that any Z value in the NDC will always be zero, because index 2,2 of this matrix, (MV*P)[sup]-1[/sup], is zero! Clearly, something is going wrong. Help?
Thanks,
-G