Sign in to follow this  
cifa

Perpendicular vectors on mesh starting from screen space

Recommended Posts

cifa    348

Hi there,

 

I was wondering if it is possible somehow to find two orthogonal vectors on a mesh, but starting from screen space. 

I know that I can bring two points (e.g. currPixel and currPixel + (1,0)) to object space if I have also depth info. In such way I can find a vector that is on the mesh in object space.

Now we all know that in 3D there are an infinite number of perpendicular vectors to another one so if I just take one of them I have no guarantee it would be on the surface of the mesh. Taking perpendicular vectors in screenspace is of no help as they may well map to non-orthogonal vector in object space.

 

Is it possible, starting from the data I have (persp. matrix, viewMatrix, modelMatrix, depth info and screenspace info), to obtain the said vector or is it an impossible task? 

 

Thank you!

Edited by cifa

Share this post


Link to post
Share on other sites
alvaro    21246
From currPixel and currPixel + (0,1) you can compute another vector that is approximately tangent to the mesh. Now use the Gram-Schmidt procedure to make the two vectors perpendicular, while still spanning the same plane. That should do.

Share this post


Link to post
Share on other sites
cifa    348

From currPixel and currPixel + (0,1) you can compute another vector that is approximately tangent to the mesh. Now use the Gram-Schmidt procedure to make the two vectors perpendicular, while still spanning the same plane. That should do.

Thank you very much! I don't know why I didn't thought of Gram-Schmidt. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this