2014-05-13 15 views
6

Tôi đang tìm cách dịch máy ảnh cùng với giao diện véc tơ của nó. Khi tôi có vectơ này, tôi có thể thực hiện dịch chuyển vô hướng dọc theo nó, sử dụng điểm đó để di chuyển vị trí máy ảnh trong tọa độ toàn cục và kết xuất lại. Bí quyết là nhận được vector lookAt tùy ý? Tôi đã xem xét một số câu hỏi và giải pháp khác nhưng chúng dường như không hiệu quả đối với tôi.Three.js Nhận Camera lookAt Vector

+1

Xem http://stackoverflow.com/questions/15696963/three-js-set-and-read-camera-look-vector/. Ngoài ra, là 'camera.translateZ (-1)' ý của bạn là gì? – WestLangley

Trả lời

6

Bạn không thể lấy số lookAtVector từ chính máy ảnh, tuy nhiên bạn có thể tạo một vectơ mới và áp dụng xoay máy ảnh vào đó.

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

Câu trả lời này không chính xác. Xem http://stackoverflow.com/questions/15696963/three-js-set-and-read-camera-look-vector/15697227#15697227 – WestLangley

+4

vì vậy, điểm khác biệt chính xác là gì? :) –

0

Sự lựa chọn đầu tiên nên cam.translateZ();

Có một lựa chọn thứ hai là tốt. Bạn có thể trích xuất vector lookAt từ thuộc tính matrix của đối tượng máy ảnh. Bạn chỉ cần lấy các phần tử tương ứng với trục z địa phương.

var lookAtVector = new THREE.Vector3(cam.matrix[8], cam.matrix[9], cam.matrix[10]); 
Các vấn đề liên quan