Define a plane knowing a point and the normal

Started by
4 comments, last by Dirk Gregorius 12 years, 4 months ago
I'm developing an opengl application and I have cast a ray from the camera to a point in 3D space. I would like to define a plane where such point lays, with the cast ray vector perpendicular to such plane.
Is it possible? If it's not clear I can make an image.
Advertisement

I'm developing an opengl application and I have cast a ray from the camera to a point in 3D space. I would like to define a plane where such point lays, with the cast ray vector perpendicular to such plane.
Is it possible? If it's not clear I can make an image.


You should be able to define this plane if you know the tangent and the binormal, which can be derived from the normal.

We know that these vectors are both perpendicular to the normal. To find the tangent you will find two vectors perpendicular to the normal and pick one depending on whether the normal is positive or negative, the binormal will be the cross product of the tangent and the normal and at that point you should have enough information to define a plane, this will however be a massive burden on your CPU if you want to do this in real time so see if you can offload some calculations to the GPU using shaders or OpenCL.


I'm developing an opengl application and I have cast a ray from the camera to a point in 3D space. I would like to define a plane where such point lays, with the cast ray vector perpendicular to such plane.
Is it possible? If it's not clear I can make an image.


could you get the cross product between your ray and the world up vector and then the cross product of that vector with the ray

ray X worldUpVec = U
ray X U = V

plane defined by the point in 3d space, U and V.

perhaps
What do you mean by define a plane? The above two comments are in regards to geometrically computing 4 points for an actual plane you can draw. The definition of a plane though is a point and normal. You have a point and normal, you have a plane equation.

NBA2K, Madden, Maneater, Killing Floor, Sims http://www.pawlowskipinball.com/pinballeternal

Thanks Adam, any chance to have a C++ example about calculating a plane from a normal vector and a point?
A plane isdefined like P: n*x - d = 0

Given a point on the plane and a plane normal the plane can be defined as: n*x - n*p= 0
(Note that bold letter indicate vectors and * is the dot product)

This topic is closed to new replies.

Advertisement