知道如何将转换矩阵应用于PerspectiveCamera吗? 我有一个转换矩阵,我使用
将它设置为透视相机camera.applyMatrix(transformationMatrix);
它正确设置camera.position
,但camera.quaternion
保持不变。旋转仅在我设置camera.matrixAutoUpdate = false
时起作用,但它会破坏轨迹球控制。我也尝试将camera.updateMatrix
添加到轨迹球控制中,但是再次重置旋转。
我已尝试手动设置相机的位置,四元数和比例:
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不起作用。
编辑:我想设置一次矩阵,而不是每一帧。
答案 0 :(得分:0)
在动画循环内尝试在camera.matrix.identity()
之前致电camera.applyMatrix(transformationMatrix)
并在controls.update()
之后致电camera.applyMatrix(transformationMatrix)
: