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, 2015 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, 2015 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, 2015 at 0:57


You must log in to answer this question.

Browse other questions tagged .