Math OpenGL:通过4x4矩阵定义的点的直线方程?(例如照相机)

Math OpenGL:通过4x4矩阵定义的点的直线方程?(例如照相机),math,matrix,graphics,3d,Math,Matrix,Graphics,3d,我想知道垂直于摄像机屏幕穿过摄像机的线的世界坐标中的3个方程组是什么。我的相机在4x4矩阵定义的世界坐标中的位置和旋转 有什么想法吗?参数线很简单,只需从直接摄影机矩阵中提取Z轴方向向量和原点O即可。请参见下面的链接,了解如何执行此操作。那么直线上的任意点P定义为: P(t) = O + t*Z 其中t是您的参数。在这种情况下,对于OpenGL透视,摄影机视图方向通常为-Z: t = (-inf,0> 根据您的投影,您可能需要使用: t = <-z_far,-z_near>

我想知道垂直于摄像机屏幕穿过摄像机的线的世界坐标中的3个方程组是什么。我的相机在4x4矩阵定义的世界坐标中的位置和旋转


有什么想法吗?

参数线很简单,只需从直接摄影机矩阵中提取Z轴方向向量和原点O即可。请参见下面的链接,了解如何执行此操作。那么直线上的任意点P定义为:

P(t) = O + t*Z
其中t是您的参数。在这种情况下,对于OpenGL透视,摄影机视图方向通常为-Z:

t = (-inf,0>
根据您的投影,您可能需要使用:

t = <-z_far,-z_near>
问题是有许多约定的组合。因此,您需要知道矩阵的行主顺序还是列主顺序,以便知道方向向量和原点是在行还是列中。另外,gfx中的相机矩阵通常是逆矩阵,所以您需要先将其反转。有关此功能的更多信息,请参阅:


不是我需要的确切答案:在ax+by+cz+d=0的形式下,它给出了什么?这是一个平面方程。两个这样的物体构成了一条三维线,作为两个平面的交点。我的错误…不确定这与OpenGL有何直接关系。也许标签3d会更有用。