javascript - 在 ThreeJS 中使用一个 OrbitControls 和两个摄像头?

标签 javascript three.js

我在一个页面上有两个 Canvas 。我想要一个 OrbitControls 来控制每个 Canvas 上的相机。如果用户缩放 canvas1,我希望 canvas2 也缩放。我该怎么办?

最佳答案

您可以创建两个轨道控件实例,并在检测到第一个摄像机在第一个场景中移动时移动另一个摄像机。

// initialize two scenes, renderers, and cameras
const controls1 = new THREE.OrbitControls( camera1, renderer1.domElement );
const controls2 = new THREE.OrbitControls( camera2, renderer2.domElement );

controls1.addEventListener( 'change', () => {

    camera2.position.copy( camera1.position );
    camera2.rotation.copy( camera1.rotation );
    render();

} );
controls1.addEventListener( 'change', () => {

    camera1.position.copy( camera2.position );
    camera1.rotation.copy( camera2.rotation );
    render();

} );

这是一个示例实现:https://jsfiddle.net/62x8c139/ .

在这种情况下,两个摄像机将位于两个场景中完全相同的位置。

希望有帮助!

关于javascript - 在 ThreeJS 中使用一个 OrbitControls 和两个摄像头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54973801/

相关文章:

javascript - chrome 中的不同时间值和使用 momentjs 的 ie 11

javascript - TinyMCE,显示字符数而不是字数

JavaScript 对象设置和函数调用

javascript - Three.js 不拉伸(stretch)网格纹理(图像) - 使其覆盖其容器

javascript - Three.js 进度加载器在模型加载时不隐藏

javascript - 半透明线不一致地显示为不透明

javascript - 三.min.js :2 THREE. Object3D.add : object not an instance of THREE. Object3D

javascript - 即使通过本地服务器运行文件后纹理也不会加载

javascript - Angular 2 子路由未解决

javascript - BootStrapValidator - 使用排除时表单不会重置