如何设置Control的第一个lookAt/target

jeu*_*eum 8 javascript three.js

我需要设置场景的初始'lookAt'点,它将是屏幕的中心和控件的旋转.如果可能的话,我宁愿设置一个点(或一个物体的位置),而不是旋转角度.

控件是OrbitControl.如果我只是在控制初始化之前设置lookAt,则在第一次用户交互时中心将恢复为(0,0,0),这会导致"间隙"...

// camera
camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 0.1, 20000);
camera.position.set(0,20,20);
camera.lookAt(new THREE.Vector3(0,10,0));

// controls
controls = new THREE.OrbitControls( camera );
controls.addEventListener( 'change', render );
Run Code Online (Sandbox Code Playgroud)

如何以正确的方式设置初始点?

Bja*_*ram 16

尝试设置控件的目标并删除camera.lookAt调用,即controls.target = new THREE.Vector3(0,10,0);

  • ...然后调用`controls.update();`以使第一帧正确. (5认同)

jeu*_*eum 11

或更直接:controls.target.set(0,10,0);