I have a 3d scene that contains an infinite plane that is NOT parallel to the camera (so every screen coordinate corresponds to a point on this plane- in other words, there are no possible invalid clicks/touches).

I have all the information you'd expect to work with: camera pos, dir, fov, aspect ratio, the 3d points defining the plane (either as a triangle, or as a normal + distance), the view/projection matrices that project it onto the screen, etc...

I haven't found anything online that answers this in a straightforward way. Please no "use this or that library". Also, if you're going to say "invert the matrix", please give a way to go about doing that (I don't think the matrix is easily/possibly invertable, as the "project to 2d" process involves the divide-by-w step, rendering the final translation between 3d to 2d non-affine).

  • \$\begingroup\$ Do you know what a projection matrix is? \$\endgroup\$ – Alec Teal Sep 14 '15 at 23:36
  • \$\begingroup\$ @AlecTeal I do. I assume that question was asked in condescension. If I'm wrong, sorry- please elaborate. If I'm correct, not only are you unhelpful, you're wrong. A "projection matrix", as traditionally used, converts a 3d point to a 2d plane- not the other way around. If you are referring to the inverse of the projection matrix, that too is insufficient as the inverse to the projection matrix does not capture the divide by w step (assuming it even exists). \$\endgroup\$ – Phildo Sep 15 '15 at 0:04
  • \$\begingroup\$ It was a serious question. If you don't I'd not bother answering, as you do there's hope \$\endgroup\$ – Alec Teal Sep 15 '15 at 0:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.