【发布时间】:2014-09-21 02:16:05
【问题描述】:
我有一个场景,其中包含许多包含块、圆柱体和网格的 Object3D 对象。我还有一个透视相机并使用轨迹球控件。我需要的是一种在不修改 FOV 或摄像机角度的情况下设置摄像机位置并确保场景中的所有对象在屏幕上可见的方法。我已经使用整个场景的边界框通过预设的顶部、底部、左侧和右侧视图成功完成了此操作,但我需要从任何摄像机角度工作,因为用户可以使用轨迹球控件将视图旋转到任何位置。
如果有一种方法可以根据相机位置、目标和对象列表获取 2d 边界矩形,我想我可以让它工作,但我很难找到如何做到这一点。
该功能的工作原理如下:对于包含许多对象的场景,用户使用鼠标将相机旋转到任意位置,然后单击“全部缩放”按钮。然后,相机被放大(移动)或缩小(保持 FOV 不变)以使所有对象都适合屏幕。
【问题讨论】:
标签: javascript three.js zooming perspectivecamera