Three.js - 将光线从物体发送到相机

时间:2017-01-11 16:06:20

标签: three.js projection raycasting

提前感谢您的帮助。

Three.js Raycaster类允许从相机向对象发送光线。我想实现反向操作。想象一下,我们在场景中有一个代表投影屏幕的平面。我们还有一个要投影的对象(网格)。我试图找到一个顶点投影在屏幕上的位置。

实际上,对于顶点,如果我们将光线从顶点投射到相机,我们需要找到它与屏幕平面的交点。请注意,这里的所有内容都是3D。所以我的屏幕(相机)平面也是3D坐标。

有任何建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为你要找的是将object3d投影到屏幕位置。 在这里回答:

answer

然后你将拥有带x,y屏幕坐标的vector2d。

如果您想要实际3D平面上的点,则可以将光线从摄像机制作到屏幕上的该位置,仅将光线交叉点添加到您位于摄像机前方的平面,然后获取交叉点点:

    rayCaster.setFromCamera(vector2d,  camera);
    var aIntersects = rayCaster.intersectObject(planeInFrontOfCamera);
    if (aIntersects.length > 0) {
       var positionOnPlane = aIntersects[0].point.
    }