从辅助“调试”相机查看时,三个js相机助手不移动

时间:2018-08-01 14:42:26

标签: three.js

抱歉,如果这篇文章的格式不正确,这是我的第一篇。

我目前正在尝试让CameraHelper沿着BezierCurve移动,相机移动正常,并且相机助手似乎移动良好,但是当从辅助“调试”相机查看场景时,该助手不是“ t“移动”。

当我切换到普通摄像机并返回时,调试凸轮上的辅助位置确实会更新,而在整个运动过程中从调试凸轮上查看时,辅助位置不会更新。

我已在渲染循环中包含了cameraHelper.update()

if (this.animationView) {
        this._effectComposer.render();
    } else {
        this._renderer.render(this._scene, this._debugCamera);
    }

    this._cameraHelper.update();

任何帮助将不胜感激,我敢肯定它很小

2 个答案:

答案 0 :(得分:0)

确保您的 cameraHelper 相机 (_debugCamera) 已添加到场景中。我注意到 cameraHelper 会渲染一次,但它不会更新,除非它被添加到场景中,即使你调用 update()。

答案 1 :(得分:-1)

使用“ CameraHelper”的前提是至少使用两个摄像头,以便“ CameraHelper”将完全显示在屏幕上。

‘CameraHelper’使用再生的设定是至少使用两个相机,例如‘CameraHelper’将完整的出现在屏幕内部。

// 屏幕相机
let camera = new THREE.PerspectiveCamera(45, 1, 0.01, 300)
camera.position.set(-1, 1.2, 1.5)
camera.lookAt(0, 0, 0)

// 带相机助手的相机
const camera1 = new THREE.PerspectiveCamera(45, 1, 0.01, 3)
camera1.position.set(-1, 1.2, 1.5)
camera.lookAt(0, 0, 0)
let cameraHelper = new THREE.CameraHelper(camera1)
scene.add(cameraHelper)

// 需要每帧更新旋转矩阵
stage.onUpdate(() => {
  cameraHelper.update()
  camera1.updateMatrix()
  camera1.lookAt(0, 0, 0)
})

CameraHelper like this