【问题标题】:Three.js - sending ray from object to cameraThree.js - 将光线从物体发送到相机
【发布时间】:2017-05-26 12:21:55
【问题描述】:
提前感谢您的帮助。
Three.js Raycaster 类允许将光线从相机发送到对象。我想实现反向操作。想象我们在场景中有一个平面,它代表我们的投影屏幕。我们还有一个要投影的对象(网格)。我试图找到一个顶点将投影在屏幕上的哪个位置。
实际上,对于一个顶点,如果我们将一条射线从顶点投射到相机,我们需要找到它与屏幕平面的交点。请注意,这里的一切都是 3D 的。所以我的屏幕(相机)平面也在 3D 坐标中。
有解决这个问题的建议吗?
【问题讨论】:
标签:
three.js
projection
raycasting
【解决方案1】:
我认为您正在寻找的是将 object3d 投影到屏幕位置。
答案在这里:
answer
那么你将拥有带有 x,y 屏幕坐标的 vector2d。
如果您希望该点位于实际的 3d 平面上,则可以从相机向屏幕上的该位置发出一条射线,仅将您位于相机前方的那个平面添加到射线交点,然后获得交点点:
rayCaster.setFromCamera(vector2d, camera);
var aIntersects = rayCaster.intersectObject(planeInFrontOfCamera);
if (aIntersects.length > 0) {
var positionOnPlane = aIntersects[0].point.
}