2013-03-27 83 views
4

我想要用three.js实现一个3D互动地球仪,我不知道是否有一种方法可以与Raycaster在Sprites基元上相交?与Raycaster相交的精灵

回答

3

如果您在

https://github.com/mrdoob/three.js/blob/master/src/core/Raycaster.js

检查RayCaster源代码,它会出现在intersectObject功能仅检查是THREE.Particle或THREE.Mesh,不THREE.Sprite实例的对象。可能这是因为精灵可能被设置为使用屏幕坐标,所以在这种情况下投影到你的3D场景中的光线是没有意义的,或者如果放置在场景中,精灵图像总是面向相机,不像你的标准3D网格。

也许你可以将一个PlaneGeometry或一个非常薄的CubeGeometry附加到你的精灵的位置,将它的旋转设置为相机的旋转,以便它总是与精灵一样平行于相机的视平面,以及然后检查与网格的交点?

+1

当前的实施情况自3年前发布后发生了变化...回顾历史 - YEAH - https://github.com/mrdoob/three.js/blob/8d7d0f17e0382ae70a2c4308a457736260484658/src/core/Raycaster.js#L40 - 你是对的。 – 2016-09-05 08:40:15