Math 将屏幕坐标投影到世界坐标轴光线上

Math 将屏幕坐标投影到世界坐标轴光线上,math,opengl,Math,Opengl,我正在尝试制作一个与世界轴对齐的平移gizmo,以将鼠标移动转换为受轴约束的世界移动。我的计划是找到以投影截锥体为边界的轴射线的端点,并将这些世界坐标投影到屏幕坐标中,以得到一条线(投影到屏幕坐标中的线)。然后将鼠标增量值投影到该线上(找到轴线的截距点和穿过鼠标增量点的垂直线),以找到沿该线放置的点,以表示最终变换点 最后,我想将新的2d屏幕坐标从屏幕投影线反投影回世界坐标(这样它就位于原始光线轴上)。然后我会将gizmo移动到该世界坐标 问题是我不知道如何将屏幕坐标最终投影回世界坐标,使坐标位

我正在尝试制作一个与世界轴对齐的平移gizmo,以将鼠标移动转换为受轴约束的世界移动。我的计划是找到以投影截锥体为边界的轴射线的端点,并将这些世界坐标投影到屏幕坐标中,以得到一条线(投影到屏幕坐标中的线)。然后将鼠标增量值投影到该线上(找到轴线的截距点和穿过鼠标增量点的垂直线),以找到沿该线放置的点,以表示最终变换点

最后,我想将新的2d屏幕坐标从屏幕投影线反投影回世界坐标(这样它就位于原始光线轴上)。然后我会将gizmo移动到该世界坐标


问题是我不知道如何将屏幕坐标最终投影回世界坐标,使坐标位于轴光线上。

可以将位置取消投影到世界位置(一个在近平面上,一个在远平面上),然后从这些点构造光线。那么你要寻找的世界点就是轴与这条光线的交点。由于您知道必须存在交点,因此仅计算平面的线参数就足够了