Three.js中的TrackballControls和相机放置

时间:2018-08-07 21:30:04

标签: javascript three.js perspectivecamera orthographic

我正在编写一个Three.js应用程序,该应用程序将使用多个摄像机以不同角度显示场景中的对象,以不同的角度同时显示其场景视图。我需要以事先未知的任意比例读取具有(X,Y,Z)坐标的对象,并且需要将我的一台相机沿Z方向直接放在该对象的中心上方向下放置,以使整个对象显示在视图窗格中。 (由于用户可以从对象的初始坐标拖动对象,因此我想保留额外的空间。)我希望画布完全显示相机看到的内容,而不是更多,并且此FoV可能不包括(0,0,0)

我无法获得代码,我认为应该将相机定位在向下看它的对象上方,以达到我期望的方式工作。在下面的简化演示代码中,如果将centerPosition设置为(0,0,0),则会得到预期的行为。如果将其设置为其他内容,则希望看到相同的东西(因为相机相对于对象的位置应相同),但我没有看到。 (OrthographicCamera和PerspectiveCamera都无法达到我的期望。)

已编辑:现在,我有一个较短的代码示例可以实际工作。我还确定我的问题与我对TrackballControls的使用有关:如果我使用PerspectiveCamera而不是OrthographicCamera,并且不使用TrackballControls,我将获得预期的行为。

是否可以使用控件并仍然获得我期望的初始位置?

交互式示例(向下滚动至“兴趣代码”,然后尝试在指示的地方更改相机或控件): https://jsfiddle.net/JBLillian/3xnfoqc6/4/

0 个答案:

没有答案