【问题标题】:OrbitControls & TransformControls per viewport每个视口的 OrbitControls 和 TransformControls
【发布时间】:2013-10-09 04:17:29
【问题描述】:

我在 4 个视口中拆分了一个场景,其中 2 个 PerspectiveCamera 和 2 个 OrthographicCamera。

实时示例:http://stemkoski.github.io/Three.js/Viewports-Quad.html

当我将 OrbitControls 用于第一台相机时,我必须分配 dom 元素,它是整个画布场景而不是特定视图。 TransformControls 也是如此。

如何在每个相机视口中使用它们?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您可以为除同一个 DomElement 之外的每个视口创建 OrbitControls 实例,因此:

    controls.push(new THREE.OrbitControls( views[0].camera, renderer.domElement ));
    controls.push(new THREE.OrbitControls( views[1].camera, renderer.domElement ));
    controls.push(new THREE.OrbitControls( views[2].camera, renderer.domElement ));
    

    只添加一个事件监听器就足够了:

    controls[0].addEventListener( 'change', draw );
    

    但是我发现这个解决方案很慢,我仍在寻找更好的选择。

    【讨论】:

    • 也许我误解了原始问题,但是是的:这就是我的解决方案的目的。如果您通过一个视口移动场景,它应该会在所有视口中发生变化。
    猜你喜欢
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2022-07-01
    相关资源
    最近更新 更多