2013-03-27 94 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