three.js - 相机变化真的很奇怪

时间:2017-09-11 09:52:38

标签: javascript three.js camera orthographic

我开发了一个简单的three.js应用程序来渲染一个立方体,它有几个按钮来设置固定的摄像机位置。我在这里有一个代码演示:https://jsfiddle.net/ph0ropg7/9/

在我的应用程序中,我渲染一个立方体,然后我可以切换到顶视图(使用 TOP VIEW 按钮),然后我可以使用 SHOW ALL将立方体调整到屏幕按钮。但是,我发现了三件奇怪的事情:

  • 当我平移立方体然后旋转它时,如果我按下 SHOW ALL 按钮,当立方体调整到屏幕尺寸时,相机方向会改变。

  • 当我使用相应的按钮设置顶视图时,控件似乎被阻止或类似这样。

  • 如果我通过点击 TOP VIEW 按钮设置顶视图,并在释放鼠标左键之前拖动,控件似乎变得疯狂。物体以一种非常奇怪和恼人的方式不断振动。

我对three.js很新,我无法弄清楚为什么会发生这三件事。任何有关这些问题的帮助或建议都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

我查看了OrthographicTrackballControls FizzBuzz Kata并注意到它在执行重置时使用了摄像头lookAt方法。 lookAt方法会将相机与其up向量对齐。因此,您需要做的是取消对ShowAll& amp;中camera.lookAt(look_at_position);的调用。 ShowTop功能并在controls.up0.copy(camera.up);方法中添加_reset_controls_after_camera_movement。控件现在将具有正确的向上矢量,并可以为您执行查看。

这里是source