在Three.js应用程序中,我想获取透视摄影机所指向的对象,并阅读raycaster文档。
我找到的所有文档都谈到了使用鼠标坐标进行Vector光线投射以及使用Vector2从鼠标坐标进行的光线投射,但是我不想使用鼠标的2D坐标。摄像机可以出于任何原因旋转:单击并拖动屏幕,触摸控件甚至是VR控件,我只想从透视摄像机的中心进行光线投射,并将其查看的对象设置为“选定”。
有什么建议么?
最佳答案
THREE.Raycaster.set()
需要origin
和direction
vector :
将相机的世界位置设置为origin
,并将其世界方向设置为direction
:
var raycaster = new THREE.Raycaster();
raycaster.set( camera.getWorldPosition(), camera.getWorldDirection() );
var intersects = raycaster.intersectObjects( objectsArray );
if ( intersects.length > 0 ) {
//...
}