Three.js 与摄影机位置和方向相关的对象的ThreeJS计算

Three.js 与摄影机位置和方向相关的对象的ThreeJS计算,three.js,Three.js,这似乎是一个很常见的问题,但我在网上找不到一个例子,而且我太喜欢数学了 使用ThreeJS,我有一个库来根据用户的位置进行空间音频定位(),但我的代码假设相机直视前方,不移动。由于我的相机正在移动,我需要获得3D对象相对于相机位置和方向的xyz位置 //finds the object in world coordinates var p = new THREE.Vector3(); p.setFromMatrixPosition(visual.object.matrixWorld); this

这似乎是一个很常见的问题,但我在网上找不到一个例子,而且我太喜欢数学了

使用ThreeJS,我有一个库来根据用户的位置进行空间音频定位(),但我的代码假设相机直视前方,不移动。由于我的相机正在移动,我需要获得3D对象相对于相机位置和方向的xyz位置

//finds the object in world coordinates
var p = new THREE.Vector3();
p.setFromMatrixPosition(visual.object.matrixWorld);
this.audioTrack.updateHrtf(p.x, p.y, p.z);
如何将对象转换为摄影机空间坐标?谢谢你的帮助


注意:我知道WebAudio API有一个简单的机制来实现这一点,但它没有HRTF(头部相关传递函数)库的功能,这听起来要好得多。

要将
矢量3
vec
从世界空间转换到相机空间,请执行以下操作:

camera.matrixWorldInverse.getInverse( camera.matrixWorld );

vec.applyMatrix4( camera.matrixWorldInverse );
3.js r.73