2014-05-13 33 views
6

Kamerayı lookAt vektörü boyunca çevirmeye çalışıyorum. Bu vektöre sahip olduğumda, boyunca skaler çeviri yapabilirim, bu noktayı kamera konumunu global koordinatlarda hareket ettirmek ve yeniden oluşturmak için kullanabilirim. Hile rasgele lookAt vektör alıyor? Başka sorulara ve çözümlere baktım ama onlar benim için çalışmıyor gibi görünüyorlar.Three.js Fotoğraf Makinesi LookAt Vektör

+1

Bkz. Http://stackoverflow.com/questions/15696963/three-js-set-and-read-camera-look-vector/. Ayrıca, 'camera.translateZ (-1)' demek istediğin nedir? – WestLangley

cevap

6

Fotoğraf makinesinin kendisinden lookAtVector'u alamıyorsunuz, ancak yeni bir vektör oluşturabilir ve kamera rotasyonunu buna uygulayabilirsiniz.

var lookAtVector = new THREE.Vector3(0,0, -1); 
lookAtVector.applyQuaternion(camera.quaternion); 
+0

Bu cevap doğru değil. Http://stackoverflow.com/questions/15696963/three-js-set-and-read-camera-look-vector/15697227#15697227 – WestLangley

+4

adresine bakın, böylece fark tam olarak nedir? :) –

0

ilk tercihi de ikinci bir seçenek yoktur cam.translateZ();

olmalıdır. LookAt vektörünü kamera nesnesinin matrix özelliğinden çıkarabilirsiniz. Sadece yerel z eksenine karşılık gelen elemanları almanız gerekir.

var lookAtVector = new THREE.Vector3(cam.matrix[8], cam.matrix[9], cam.matrix[10]); 
İlgili konular