【发布时间】:2023-03-29 09:06:01
【问题描述】:
我在 THREE.js 中有一个摄像头指向下方的网格景观,我想与该网格保持一定距离(因此,如果地形中有山峰,摄像头会移动得更远)。
我认为光线投射将是开始解决此问题的正确方法(通过获取相交距离),但我发现的所有示例都与使用鼠标坐标有关;当我尝试将原点设置为相机位置时,方向坐标为相机位置,但 Y 轴上为 0(因此相机在空中朝下),相交结果为空。
例如,在我的渲染事件中:
t.o.ray.vector = new THREE.Vector3(t.o.camera.position.x, 0, t.o.camera.position.z );
t.o.ray.cast = new THREE.Raycaster(t.o.camera.position,t.o.ray.vector );
t.o.ray.intersect = t.o.ray.cast.intersectObject(object, true);
console.log(t.o.ray.intersect);
这会导致一个空数组,即使我正在移动相机,我似乎可以让它工作的唯一方法是使用依赖于鼠标事件的示例。
任何想法我错过了什么?
【问题讨论】:
标签: three.js raycasting