Three.js 与摄影机位置和方向相关的对象的ThreeJS计算
这似乎是一个很常见的问题,但我在网上找不到一个例子,而且我太喜欢数学了 使用ThreeJS,我有一个库来根据用户的位置进行空间音频定位(),但我的代码假设相机直视前方,不移动。由于我的相机正在移动,我需要获得3D对象相对于相机位置和方向的xyz位置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
//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