检查对象是否在看位置
Check if object is looking at position
我正在尝试检查某个对象 (this.target
) 是否正在查看特定位置 (newPosition
)。我现在拥有的是以下内容:
new THREE.Matrix4().lookAt( newPosition, this.target.position, this.target.up ) == this.target.matrix
但由于某种原因,这行不通。您打算如何检查 Object3D 是否正在查看特定位置?
那是行不通的,因为你的目标矩阵不在同一个地方,而且可以按不同的比例缩放等等。
更好的技术是从你的眼睛对象进行光线投射,看看它是否击中目标对象。
http://threejs.org/examples/#webgl_geometry_terrain_raycast
var raycaster = new THREE.Raycaster();
raycaster.setFromCamera( mouse, camera );
// See if the ray from the camera into the world hits one of our meshes
var intersects = raycaster.intersectObject( mesh );
我正在尝试检查某个对象 (this.target
) 是否正在查看特定位置 (newPosition
)。我现在拥有的是以下内容:
new THREE.Matrix4().lookAt( newPosition, this.target.position, this.target.up ) == this.target.matrix
但由于某种原因,这行不通。您打算如何检查 Object3D 是否正在查看特定位置?
那是行不通的,因为你的目标矩阵不在同一个地方,而且可以按不同的比例缩放等等。
更好的技术是从你的眼睛对象进行光线投射,看看它是否击中目标对象。
http://threejs.org/examples/#webgl_geometry_terrain_raycast
var raycaster = new THREE.Raycaster();
raycaster.setFromCamera( mouse, camera );
// See if the ray from the camera into the world hits one of our meshes
var intersects = raycaster.intersectObject( mesh );