簡體   English   中英

設置相機的變換矩陣后旋轉不改變

[英]Rotation does not change after setting transformation matrix for camera

任何想法如何將轉換矩陣應用於PerspectiveCamera? 我有一個轉換矩陣,並通過使用將其設置為“透視相機”

camera.applyMatrix(transformationMatrix);

它正確設置了camera.position但是camera.quaternion保持不變。 旋轉僅在我設置camera.matrixAutoUpdate = false但會破壞軌跡球camera.matrixAutoUpdate = false 我也嘗試過將camera.updateMatrix添加到trackballcontrols中,但是再次重置旋轉。 我嘗試手動設置相機的位置,四元數和比例為:

camera.matrixAutoUpdate = false;
camera.useQuaternion = true;

var position = new THREE.Vector3();
var quaternion = new THREE.Quaternion();
var scale = new THREE.Vector3(1, 1, 1);
transformationMatrix.decompose(position, quaternion, scale);

camera.position.copy(position);
camera.quaternion.coy(quaternion);
camera.scale.copy(scale);

camera.updateMatrix();

它產生相同的結果,所有設置均正確,但trackballcontrols不起作用。

編輯:我想一次設置矩陣,而不是每一幀。

在動畫循環內部,嘗試在camera.applyMatrix(transformationMatrix) camera.matrix.identity()之前調用camera.matrix.identity() ,並在camera.applyMatrix(transformationMatrix)之后調用controls.update() camera.applyMatrix(transformationMatrix)

http://jsfiddle.net/95u904m7/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM