Skip to main content
GameDev.net gamedev.net
🔒 Locked

Perpendicular vectors on mesh starting from screen space

Started by cifa Aug 12, 2014 at 8:08 PM 1 replies 1.8k views
Original Post
cifa
cifa

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!

alvaro
alvaro
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.
cifa
cifa

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.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.