# 3D near and far z values from worldviewprojection

## Recommended Posts

Hi,

In direct3D (DX9), I am wondering if I have the worldviewprojection matrix and the world matrix if its possible to extract the near and far z values that you would use to construct the projection matrix (i.e the zn and zf parameters here  :https://docs.microsoft.com/en-us/windows/desktop/direct3d9/d3dxmatrixperspectivefovlh)

From what I can gather, if i have the inverse of the viewprojection I should be able to multiply it by corner points on the near and far planes (e.g {-1, -1, 0, 1} and {-1, -1, 1, 1}) and get the corner points in world space. In the examples I have seen, divide my w and the resulting z values would give me zn and zf. Is this correct or am I misunderstanding something here?

I would find the inverse of the world matrix, multiply it by the worldviewprojection to give the viewprojection, and then invert that?

I haven't managed to get anything close to what I am after, attempting the above, however, just wanted to check the theory actually makes sense.

Cheers

Dave

##### Share on other sites

You only want the projection matrix not the viewProjection. But in principle, yes, just apply the inverse projection to the corners of the NDC and divide by the resulting w (you may need to flip the sign as well). Don't forget that the resulting w may be 0 if it is a projection matrix with zf=infty.

##### Share on other sites
3 hours ago, l0calh05t said:

u only want the projection matrix not the viewProjection. But in principle, yes, just apply the inverse projection to the corners of the NDC and divide by the resulting w (you may need to flip the sign as well). Don't forget that the resulting w may be 0 if it is a projection matrix with zf=infty.

Ah ok. That's unfortunate, as I have access to neither the view, worldview, or projection matrix. I may need to try a different approach. Thanks anyway

##### Share on other sites

Whilst opengl, this seems to imply inverse viewprojection should work, doesnt it?

Edited by davegl1234

##### Share on other sites
11 hours ago, davegl1234 said:

Whilst opengl, this seems to imply inverse viewprojection should work, doesnt it?

No, it does not. Think about the following: Do zn and zf vary if the camera moves? The z component of the view frustum corners in world space do vary when the camera moves.

Edited by l0calh05t

## Create an account

Register a new account

• 9
• 10
• 16
• 12