In Three.js, voglio che una telecamera sia puntata in un punto nello spazio 3D.ThreeJS camera.lookAt() non ha alcun effetto, c'è qualcosa che sto facendo male?
Per questo scopo, ho provato utilizzando la funzione camera.lookAt
modo:
camera.lookAt(new THREE.Vector3(-100,-100,0));
Tuttavia, ho scoperto che la chiamata non ha alcun effetto. Semplicemente non fa niente. Ho provato a cambiare i numeri nel vettore, e ottengo sempre lo stesso aspetto sullo schermo, quando dovrebbe cambiare.
Ho appena trovato ora che se rimuovo lo THREE.TrackballControls
che ho nel mio codice, il camera.lookAt()
funziona come dovrebbe. C'è qualcosa di sbagliato nel modo in cui utilizzo THREE.TrackballControls? Questo è come io li inizializzo:
controls = new THREE.TrackballControls(camera, renderer.domElement);
controls.rotateSpeed = 10.0;
controls.zoomSpeed = 1.2;
controls.panSpeed = 0.2;
controls.noZoom = false;
controls.noPan = false;
controls.staticMoving = true;
controls.dynamicDampingFactor = 1.0;
var radius = 5;
controls.minDistance = radius * 1.1;
controls.maxDistance = radius * 100;
controls.keys = [ 65, 83, 68 ]; // [ rotateKey, zoomKey, panKey ]*/
E poi nella mia funzione di rendering che faccio:
function render() {
controls.update();
renderer.render(scene, camera);
}
documentazione sul Three.js è piuttosto scarsa, così ho pensato di chiedere qui. Sto facendo qualcosa di sbagliato?
Mostraci altro codice. Dai un'occhiata a questo semplice esempio: http://jsfiddle.net/TE5bM/ –
hai un ciclo di aggiornamento in cui re-rendering la scena? sembra che tu non stia aggiornando/rendendo. –
@Juan George: Sto chiamando .lookAt() quando imposto la scena, prima che tutto venga reso, quindi la mia chiamata dovrebbe avere un effetto. Tuttavia, penso di aver appena trovato il problema; Ho THREE.TrackballControls nel mio codice, che penso interferisca con ciò che dico .lookAt(), perché quando rimuovo THREE.TrackballControls, la funzione .lookAt() funziona come dovrebbe. Cosa sto sbagliando con THREE.TrackballControls? – houbysoft