ThreeJS无法移动相机

时间:2016-10-24 19:25:27

标签: three.js

我试图通过改变它的世界矩阵来移动相机。但它似乎没有效果。无论相机什么都不动。

camera.matrixAutoUpdate = false
camera.matrixWorld = portal_view(camera,port1_quad,port2_quad)

我尝试过使用matrixupdate = true但仍然没有。我错了什么?

function portal_view(camera, src_portal, dst_portal) {
                var inverse_view_to_source = new THREE.Matrix4().getInverse(camera.matrix).multiply(src_portal.matrix);
                var new_mat = dst_portal.matrix.clone().multiply(inverse_view_to_source);
                new_mat.makeRotationY(3.14);

                return new_mat;
            }

1 个答案:

答案 0 :(得分:0)

对象的

matrixWorld是根据其positionquaternionscale计算出来的。你不能直接改变矩阵世界'一个对象。换句话说,如果您更改matrixWorld,则更改不会反映在对象的position上。您必须更改相机的position

您可以做的是,从矩阵中提取translationrotation,然后根据它更改相机positionquaternion