reverseprojection

    2热度

    1回答

    第一次问一个关于堆栈交换的问题,希望这是正确的地方。 我似乎无法为我的情况开发足够接近的近似算法,因为我不完全是3D数学方面最好的算法。 我有一个3d环境,可以访问包括我的相机在内的任何对象的位置和旋转,以及从任意两点运行迹线以获得点与碰撞点之间的距离。我也有我的相机的视野。但是,我没有任何形式的访问世界/视图/投影矩阵。 我也有一个2d图像的集合,基本上是一组来自相机的3D环境屏幕截图,每个集合

    3热度

    3回答

    所以,我已经成功地取得了光线的代表未投影到世界的鼠标,现在我需要检查,如果该线可以用四物相交,这里是我使用来获取射线代码: public Ray GetMouseRay() { Vector2 mousePosition = new Vector2(cursor.getX(), cursor.getY()); Vector3 nearPoint = new Ve

    3热度

    1回答

    我使用 worldview_inverse * (projection_inverse * vector) 变换屏幕空间坐标变换为世界空间坐标。 我认为 (x,y,1,1) 将转化为对远平面上的点,而 (x,y,-1,1) 转变为一个点近平面,和连接线,我可以查询视图中的所有对象相交的截头圆锥体。 转换后,我把它们各自的.w组件分开。 这适用于远平面,但近平面上的点以某种方式转变为世界