摄影机前的三组物体
Three set object in front of camera in a dolly
我正在使用
将一个物体放在相机前面
var dist = -100;
var vec = new THREE.Vector3( 0, 0, dist );
vec.applyQuaternion( camera.quaternion );
object.position.copy( vec );
object.lookAt(camera.position);
这真的很好用。
我现在必须旋转相机(它用于 VR 视频播放器)以设置它的起始位置并这样做并且仍然使用 WebVR 样板,我将视频添加到推车对象并旋转它。
dolly = new THREE.Group();
dolly.position.set( 0, 0, 0 );
scene.add( dolly );
camera.up.set( 0, 1, 0 );
dolly.add( camera );
并且物体现在不在镜头前。我正在尝试将推车旋转应用于矢量以说明该角度。
var rotation = new THREE.Euler().setFromQuaternion( camera.quaternion, camera.rotation.order );
rotation.y += dolly.rotation.y;
var quat = new THREE.Quaternion().setFromEuler(rotation, camera.rotation.order);
vec.applyQuaternion( quat );
这主要适用于相机处于特定角度但有时不是并且对象也在其 x 轴上旋转的情况。
我假设rotation.y += dolly.rotation.y
;是错误的,但我不确定合并数字的更好方法。
@WestLangleys 在这里回答
three.js tween object to front of camera
回答了我的问题
var pLocal = new THREE.Vector3( 0, 0, dist );
var target = pLocal.applyMatrix4( camera.matrixWorld );
object.position.copy( target );
object.lookAt(camera.position);
我正在使用
将一个物体放在相机前面 var dist = -100;
var vec = new THREE.Vector3( 0, 0, dist );
vec.applyQuaternion( camera.quaternion );
object.position.copy( vec );
object.lookAt(camera.position);
这真的很好用。
我现在必须旋转相机(它用于 VR 视频播放器)以设置它的起始位置并这样做并且仍然使用 WebVR 样板,我将视频添加到推车对象并旋转它。
dolly = new THREE.Group();
dolly.position.set( 0, 0, 0 );
scene.add( dolly );
camera.up.set( 0, 1, 0 );
dolly.add( camera );
并且物体现在不在镜头前。我正在尝试将推车旋转应用于矢量以说明该角度。
var rotation = new THREE.Euler().setFromQuaternion( camera.quaternion, camera.rotation.order );
rotation.y += dolly.rotation.y;
var quat = new THREE.Quaternion().setFromEuler(rotation, camera.rotation.order);
vec.applyQuaternion( quat );
这主要适用于相机处于特定角度但有时不是并且对象也在其 x 轴上旋转的情况。
我假设rotation.y += dolly.rotation.y
;是错误的,但我不确定合并数字的更好方法。
@WestLangleys 在这里回答 three.js tween object to front of camera
回答了我的问题
var pLocal = new THREE.Vector3( 0, 0, dist );
var target = pLocal.applyMatrix4( camera.matrixWorld );
object.position.copy( target );
object.lookAt(camera.position);