Три. js: прикрепить камеру к трехмерному объекту и вращать / перемещать вместе с объектом и показывать в окне вставки - PullRequest
0 голосов
/ 27 января 2020

У меня есть дополнительная камера (Cam1), добавленная к трехмерному объекту (obj1). Поэтому, когда я нажимаю на объект, я хочу активировать перспективную камеру - Cam1. Он должен в основном смотреть в том же направлении, что и объект, чтобы показать, что лежит на пути объекта. Это должно быть показано в окне вставки. Пример: https://jsfiddle.net/qwb39spx/

    func A(){
   Cam1 = new THREE.PerspectiveCamera(10, window.innerWidth/window.innerHeight, -4, -35);
   insetWidth = window.innerHeight / 4; // square
   insetHeight = window.innerHeight / 4;
   Camera2.aspect = insetWidth / insetHeight;
   objgroup.add(Cam1);
   }

В Render () у меня есть:

    renderer.setClearColor( 0x000000, 0 );
    renderer.setViewport(0, 0, window.innerWidth, window.innerHeight);
    renderer.render(scene, camera);

            // inset scene
    renderer.clearDepth(); // important!
    renderer.setScissorTest(true);
    renderer.setScissor(20, 20, insetWidth, insetHeight);
    renderer.setViewport(20, 20, insetWidth, insetHeight);
    renderer.setClearColor( 0x222222, 1 );

Я пробовал:

    Cam1.position.copy(objgroup.position.clone().normalize().multiplyScalar(1));
    Cam1.quaternion.copy(objgroup.quaternion);

и

   Cam1.rotation.copy(objgroup.rotation);

и

    var pos = new THREE.Vector3();       
    objgroup.getWorldDirection(pos);
    Cam1.lookAt(pos);
    renderer.render(scene, cam1);
    renderer.setScissorTest(false);

Теперь есть две проблемы:

  1. Я не вижу ничего в окне вставки.
  2. Камера продолжает экспоненциально двигаться вперед и в произвольном направлении, когда я перемещаю объект вперед и наоборот.

Пожалуйста, помогите мне решить эту проблему.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...