i need to restore the 3d position of the screen pixel. my scene is rendered using FBO and then displayed on a quad. my screen pixel is the

```
point = gl_ModelViewProjectionMatrix * gl_Vertex
```

i use

```
point
```

as varying and send it to the fragment shader. if i understand everything correctly i need to do 2 operations. i take the inverse Projection and ModelView matrices which i used to render the scene (not the matrices used for the FBO quad rendering) and send it to the shader. then i first multiply inverse projection matrix

```
vec4 v_cam = proj_inv * point
```

and after i restore the 3d vertex multiplying inverse model view matrix

```
vec4 vertex = mview_inv * v_cam
```

unfortunately i have wrong result. does anyone know how to do this correctly?